swift基础_ set get方法 理解

swift中重写set get方法是这样的。

先定义一个变量,当调用set方法的时候,系统会有一个newValue, 将newValue赋值给我们定义的变量,然后从get方法返回去。

swift中一般重写较少

eg.

//求周长
        var perimeter :Double{
            get{return 3.0 * sideLength
            }
            set{
                    
                sideLength =  newValue / 3.0
            }
        }

 这样的话,在set的时候 会出现一个 newValue 这个newValue就代表了 变量permeter

用的时候这样用

 //9_2继承之等边三角形
        let trangele = equilateraTriangle(name: "a equilateralTrangle", sideLength: 3)
        print(trangele.perimeter)
        trangele.perimeter = 9.9
        print(trangele.sideLength)

 如果只重写了get方法  在定义 这个周长变量的时候 会爆只读属性的错误

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Esofar 开发日记

C#基础篇 - 理解委托和事件

委托类似于C++中的函数指针(一个指向内存位置的指针)。委托是C#中类型安全的,可以订阅一个或多个具有相同签名方法的函数指针。简单理解,委托是一种可以把函数当做...

1183
来自专栏个人随笔

Java 高级开发必修知识---内部类

Java 内部类分为:   1)成员内部类   2)静态嵌套类   3)方法内部类   4)匿名内部类 ? 内部类的共性 1、内部类仍然是一个独立的类,在编译之...

3359
来自专栏码云1024

C#泛型

2804
来自专栏编程坑太多

Java 8 新特性 Lambda 表达式简单使用

1769
来自专栏me的随笔

.NET中可空值类型实现原理

为了让.Net中的值类型可以赋值为null,微软特地添加了Nullable<T>类型,也可简写为T?。但是Nullable<T>自身是结构体,也是值类型,那么它...

862
来自专栏GreenLeaves

C# 高效率创建字符串类(StringBuilder)

因为String类型代表不可变字符串,所以无法对当前String类型实例进行处理.所以FCL提供了System.Text.StringBuilder类型,它可以...

833
来自专栏Java技术栈

JDK8新特性之Lambda表达式

什么是Lambda表达式 Java 8的一个大亮点是引入Lambda表达式,使用它设计的代码会更加简洁。当开发者在编写Lambda表达式时,也会随之被编译成一个...

3425
来自专栏码农阿宇

C# 找出泛型集合中的满足一定条件的元素 List.Wher()

在学习的过程中,发现泛型集合List<T>有一个Where函数可以筛选出满足一定条件的元素,结合Lambda表达式使用特别方便,写出来与大家分享。 1.关于Fu...

37610
来自专栏林德熙的博客

C# 循环的判断会进来几次

最近有小伙伴告诉我,在循环的判断条件只会计算一次,本金鱼不相信,于是就做了测试,本文记录我做的测试。

993
来自专栏郭耀华‘s Blog

快速排序法

/** * 快速排序实现 * Created by John Kwok on 2018/2/2. */ import java.util.Arrays; ...

3276

扫码关注云+社区