在不加特定修饰符的情况下,在swift类型中定义的属性,方法都是属于实例的。

可以使用static来声明枚举和结构体的类型属性/方法

使用class来声明类的类型属性/方法

swift对类型成员和实例成员的区分泾渭分明:通常来说,类型成员不允许访问实例成员,实例成员也不允许访问类型成员

/*
枚举可以包含类型存储属性和类型计算属性,
枚举可以包含实例计算属性,不能包含实例存储属性
*///枚举的类型属性
enum Seasonz
{static var desc : String?static let name = "jijie"static var info:String{get{return "test \(desc)"}set{print("the season is \(newValue)")}}
}
Seasonz.desc = "jijielei"
print(Seasonz.name)
Seasonz.info = "new info"
print(Seasonz.info)/*
结构体可以包含类型属性,包括类型存储属性和类型计算属性
结构体可以包含实例计算属性和实例存储属性
*///结构体包含类型属性
struct FkRange{static var desc : String?static let maxWidth = 1000static let maxheight = 4000static var maxArea : Int{return maxWidth * maxheight}
}
FkRange.desc = "描述范围的结构体"
print(FkRange.desc)
print(FkRange.maxWidth)
print(FkRange.maxheight)
print(FkRange.maxArea)/*
类中不能定义类型存储属性,只能包含类型计算属性
类中可以包含实例存储属性,实例计算属性
*/
//不能定义类型存储属性可能是为了保持与oc的兼容
class Users {class var nameMaxLength : Int{get{return 24}set{print("fuzhi \(newValue)")}}
}
print(Users.nameMaxLength)
Users.nameMaxLength = 20//枚举的值类型方法
enum Seasonon
{static var desc : String?static let name = "season"static func info(){print("the name is \(name)")}static func setDesc(desc : String){self.desc = desc}
}
Seasonon.info()
Seasonon.setDesc("describe the change of the weather")
print(Seasonon.desc)
/*
类型方法不能直接访问实例成员,如果希望在类型方法中访问实例成员,必须先创建该类型的实例,然后以实例作为调用者来访问实例成员
*///类的类型方法
class Math
{class var pi:Double{return 3.1415926}class func abs(value:Double) -> Double{return value < 0 ? -value : value}class func pow(base:Double, _ exponent:Int) -> Double {var result = 1.0for _ in 1...exponent{result *=  base}return result}class func radian2Degree(redian:Double) -> Double {return redian * 180 / pi}class func degree2Radian(degree:Double) -> Double {return degree * self.pi / 180}
}
print(Math.pi)
print(Math.pow(2, 4))
print(Math.radian2Degree(1.57))
print(Math.degree2Radian(45))

  

转载于:https://www.cnblogs.com/chebaodaren/p/5591068.html

Swift -- 7.5 类型属性,方法相关推荐

  1. Java浅克隆与深克隆区别详解与实现,以及String类型属性克隆为什么不受影响?克隆clone()方法中为什么是super.clone()

    1. 浅克隆实现 public class CloneTest {public static void main(String[] args) throws CloneNotSupportedExce ...

  2. Swift - 类型属性(类静态属性)和类方法(类静态方法)

    1,结构体struct和枚举enum的静态属性,静态方法使用static关键字 1 2 3 4 5 6 7 8 9 10 struct Account {      var amount : Doub ...

  3. fastjson转换包含date类型属性的对象时报错com.alibaba.fastjson.JSONException: For input string 解决方法

    fastjson转换包含date类型属性的对象时报错com.alibaba.fastjson.JSONException: For input string 解决方法 pojo里面的date属性上要加 ...

  4. 1023day5:class类属性方法、每次执行类属性+1、内建模块、时间装饰器wrapper、面向对象__slots__方法:限制类的属性等基础知识、正则表达式基础知识、多态鸭子类型

    文章目录 一.类class 1.Python类class 属性 方法 2.类的构造方法__init__() 3.每次执行一次类的属性+1 二.模块 1.内建模块 2.第三方模块 3.定义自己的模块 三 ...

  5. swift. 扩展类添加属性_Swift中用到extension的一些基本的扩展功能讲解

    现有的类,结构或枚举类型的功能可以在扩展的帮助下加入.类型的功能可以使用扩展加入,但重写的功能不能使用扩展. Swift 扩展功能: 添加计算属性并计算类型属性 定义实例和类型的方法 提供了新的初始化 ...

  6. Swift编程十二(方法)

    案例代码下载 方法 方法是与特定类型相关联的函数.类,结构和枚举都可以定义实例方法,这些方法封装了用于处理给定类型的实例的特定任务和功能.类,结构和枚举也可以定义类型方法,它们与类型本身相关联.类型方 ...

  7. ES6语法~解构赋值、箭头函数、class类继承及属性方法、map、set、symbol、rest、new.target、 Object.entries......

    2015年6月17日 ECMAScript 6发布正式版本 前面介绍基本语法,  后面为class用法及属性方法.set.symbol.rest等语法. 一.基本语法:  1.         定义变 ...

  8. 如何查看 el-form-item 的prop属性_PHP 7.4中的类型属性(Typed Properties)

    php中文网最新课程 每日17点准时技术干货分享 在PHP 7.4中添加了类型属性,并对PHP的类型系统进行了重大改进.这些更改是完全可选的,并且不破坏以前的版本. 在这篇文章中,我们将深入了解这个特 ...

  9. php 判断类型array,判断一个变量是数组Array类型的方法_javascript技巧

    在很多时候,我们都需要对一个变量进行数组类型的判断.JavaScript中如何判断一个变量是数组Array类型呢?我最近研究了一下,并分享给大家,希望能对大家有所帮助. JavaScript中检测对象 ...

最新文章

  1. 纸质图书与电子图书的营销策略研究
  2. mysql运用与实践_MySQL开发与实践 PDF 下载
  3. 【第二十七章】 springboot + zipkin(brave-okhttp实现)
  4. 如何用python实现地图定位_基于 PyQt5 实现地图中定位相片拍摄位置
  5. ap6212 Linux 蓝牙,替代正基AP6212、AP6330的SDIO WiFi+UART蓝牙组合
  6. no crontab for root 问题解决方法
  7. 自定义应用程序配置文件(app.config)
  8. git clone server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile
  9. 简单谈谈对软件工程的理解
  10. 微信小程序登录授权开发
  11. ansys变形太夸张_ANSYS大变形典例:线性与非线性分析差别巨大,如何选择?
  12. Ubuntu下查看隐藏文件
  13. 通过代码提高编程能力
  14. html+css制作月亮
  15. 关于孔明先生职称申请报告的回函
  16. Scrapy 第一次爬虫
  17. 工信部于佳宁:区块链要服务实体经济
  18. 2019年什么工作最有前景?互联网/IT行业职业方向大盘点!
  19. javaSE探赜索隐之一<小生的第一篇CSDN博客,欢迎大家指正>
  20. 微软与网景关于浏览器的恩怨情仇

热门文章

  1. pytorch nn.Module.parameters
  2. opencv-api getPerspectiveTransform
  3. sizeof运算符介绍以及常见的坑
  4. 如何使用 vSphere Certificate Manager 替换 SSL 证书 (2097936)
  5. vSphere 7.0 GA正式版发布
  6. Spring Boot学习总结(27)—— Spring Boot中两个数据库迁移工具Liquibase和Flyway的比较
  7. MyBatis学习总结(26)——Mybatis源码中使用了哪些设计模式?
  8. Java基础学习总结(126)——Log4j2.xml生产环境实用配置
  9. Spring Boot学习总结(7)——SpringBoot之于Spring优势
  10. Windows学习总结(9)——Windows系统常用的网络控制指令