Как я пропустил бы дополнительные аргументы в вызове функции?

Неизменяемые просто означают неизменяемые или неизменяемые. Как только строковый объект создан, его данные или состояние не могут быть изменены

Рассмотрим приведенный ниже пример,

class Testimmutablestring{  
  public static void main(String args[]){  
    String s="Future";  
    s.concat(" World");//concat() method appends the string at the end  
    System.out.println(s);//will print Future because strings are immutable objects  
  }  
 }  

Давайте разберемся с приведенной ниже диаграммой,

enter image description here

На этой диаграмме вы можете видеть новый объект, созданный как «Мир будущего». Но не меняйте «Будущее». Because String is immutable. s, все еще ссылаются на «Будущее». Если вам нужно вызвать «Мир будущего»,

String s="Future";  
s=s.concat(" World");  
System.out.println(s);//print Future World

Почему строковые объекты неизменяемы в Java?

Поскольку в Java используется концепция строкового литерала , Предположим, есть 5 ссылочных переменных, все ссылаются на один объект «Будущее». Если одна ссылочная переменная изменит значение объекта, это повлияет на все ссылочные переменные. Вот почему строковые объекты неизменны в Java.

85
задан Chuck Le Butt 19 May 2015 в 09:28
поделиться

2 ответа

Ваше сообщение верное.

К сожалению, если вам нужно использовать необязательный параметр в самом конце списка параметров, вы должны указать все до этого последнего параметра. Обычно, если вы хотите смешивать и сопоставлять, вы даете им значения по умолчанию '' или null , и не используйте их внутри функции, если они являются этим значением по умолчанию.

50
ответ дан 24 November 2019 в 08:22
поделиться

Нет другого способа «пропустить» аргумент, кроме как указать значение по умолчанию, например false или null .

Поскольку PHP не хватает синтаксического сахара, когда дело доходит до этого, вы часто будете видеть что-то вроде этого:

checkbox_field(array(
    'name' => 'some name',
    ....
));

Который, как красноречиво сказано в комментариях, использует массивы для имитации именованных аргументов.

Это дает максимальную гибкость. но в некоторых случаях может не понадобиться. По крайней мере, вы можете переместить все, что, по вашему мнению, в большинстве случаев не ожидается, в конец списка аргументов.

38
ответ дан 24 November 2019 в 08:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: