찾다

 >  Q&A  >  본문

IOS swift if let a = b 可以通过a改变b的值么?,请大神解释解释

如图为啥,为啥显示是这不科学呢,我觉得应该显示科学才对,莫非label和myLabel是绑定在一起的?

巴扎黑巴扎黑2889일 전245

모든 응답(4)나는 대답할 것이다

  • 怪我咯

    怪我咯2017-04-17 17:55:47

    Swift의 클래스는 실제로 포인터인 참조 유형이며 myLabel은 메모리 주소를 가리키므로 동일한 내용이 변경됩니다.
    단지 myLabel 포인터는 자신이 가리키는 주소를 변경할 수 없습니다.
    myLabel === label을 사용하여 주소가 동일한지 확인할 수 있습니다.

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-17 17:55:47

    labelmyLabel은 동일한 객체를 참조하며, label.text = “xx”myLabel.text = “yy”는 모두 해당 객체의 text 속성을 ​​설정합니다.

    회신하다
    0
  • 天蓬老师

    天蓬老师2017-04-17 17:55:47

    Swift에서 값 유형의 전송은 모두 복사이고, 참조 유형의 전송은 모두 주소입니다

    회신하다
    0
  • ringa_lee

    ringa_lee2017-04-17 17:55:47

    위의 세 분께 감사드립니다.
    struct 및 enum은 값 유형(복사 값 전달)입니다. 클래스 인스턴스 객체는 참조 유형(전달 포인터)입니다.

    회신하다
    0
  • 취소회신하다