import Foundation
/*
方法
*/
//实例方法 一定需要依附于对象 class MyPoint {
var x: Double = 0.0
var y: Double = 0.0
//类中的内部方法 第一个参数默认没有外部参数名,从第二个以后开始,方法名作为外部参数名 既作为内部参数又做为外部参数
//实例方法
func set(_x: Double,_y: Double) {
x = _x
y = _y
}
//实例方法
func show() {
println("x:\(x) y\(y)")
}
}
func set(_x: Double,_y: Double) { } var p0 = MyPoint()
p0.set(, _y: )
p0.show()
set(, ) //结构体中的mutating方法
struct MyPoint_1 {
var x : Double =
var y : Double =
//结构体和枚举 值类型不可以直接修改其内的变量值,如果要修改,需要在方法前加关键字 mutating
mutating func set(x : Double,y : Double) {
self.x = x
self.y = y }
func show() {
println("x:\(self.x) y:\(self.y) ")
} }
//枚举中可以写方法,但枚举中不能有存储属性,可以有计算属性
enum LightSwitch {
case OFF,ON,HIGH
mutating func next() {
switch self {
case .OFF:
self = ON
case .ON:
self = OFF
case .HIGH:
self = OFF }
} }
var p1 = MyPoint_1()
p1.show() var light = LightSwitch.OFF
println(light.hashValue)
light.next()
println(light.hashValue) /*
类型方法 静态方法
通过类名+方法名来调用
与static静态方法相似,该方法为所有对象共用
*/
struct MyPoint_2 {
var p: Int =
static var sp: Int =
func getvalue() {
println("p:\(p) sp:\(MyPoint_2.sp)")
}
//静态方法不能够访问非静态变量
static func static_getvalue() {
// println("p:\(p) sp:\(MyPoint_2.sp)")
println("sp:\(MyPoint_2.sp)") } }
struct MyPoint_3 {
var p: Int =
static var sp: Int =
func getvalue() {
println("p:\(p) sp:\(MyPoint_3.sp)")
}
//静态方法不能够访问非静态变量
static func static_getvalue() {
// println("p:\(p) sp:\(MyPoint_3.sp)")
println("sp:\(MyPoint_3.sp)") } }
var m2 = MyPoint_2()
m2.getvalue()
MyPoint_2.static_getvalue() var m3 = MyPoint_3()
m3.getvalue()
MyPoint_3.static_getvalue() /*
subscripts 下标 访问对象中数据的快捷方式
实例[索引值]
*/
let array = [,,,,,,]
println(array[]) //实例对象[索引] struct student {
var name : String = ""
var math : Int
var english : Int
var chinese : Int
func scoreOf(course : String) -> Int? {
switch course {
case "math":
return math
case "chinese":
return chinese
case "english":
return english
default:
return nil
}
}
//制作下标方法
/*
subscript (course : String) -> Int? {
switch course {
case "math":
return math
case "chinese":
return chinese
case "english":
return english
default:
return nil
}
}
*/
//或者这么写
subscript (course : String) -> Int? {
get{
switch course {
case "math":
return math
case "chinese":
return chinese
case "english":
return english
default:
return nil
}
}
set{
switch course {
case "math":
math = newValue!
case "chinese":
chinese = newValue!
case "english":
english = newValue!
default:
println("set error")
}
}
} }
var li = student(name: "lisi", math: , english: , chinese: )
println(li.scoreOf("math"))
println(li["math"])//下标访问
li["math"] = //下标赋值
println(li["math"])//下标访问 //下标多索引
struct Mul {
subscript (a: Int,b: Int) -> Int {
return a*b
}
}
var mul = Mul()
println(mul[,])
 

初学swift笔记 方法(九)的更多相关文章

  1. swift 笔记 (十九) —— 协议

    协议(Protocols) 协议仅是用定义某些任务或者是功能必须的方法和属性. 类似于java里的interface的作用.但协议并不会实现详细的功能. 我猜这个名字源于OO中提到的"契约& ...

  2. 初学swift笔记 结构体(八)

    import Foundation /* 和类很相似 结构体 -> 封装 属性.方法 结构体是值类型 */ //定义一个LSQ类型的结构体 关键字struct struct LSQ { var ...

  3. 初学swift笔记 继承(十)

    import Foundation /* 继承 class childClass: FatherClass{ } 优点 代码重用 缺点 增加程序的藕合度 父类的改变会影响子类 只能单继承 */ cla ...

  4. 初学swift笔记 枚举(七)

    import Foundation /* 枚举 语法结构 enum 类型 { case 值 } */ //定义一个枚举 写法1 enum LiuShiQun { case Name case Age ...

  5. 初学swift笔记运算符(二)

    swift 中的运算符 import Foundation //字符类型 var char: Character = "a" char="b" println( ...

  6. 初学swift笔记变量的定义(一)

    swift变量的定义 1 import Foundation /* 变量的定义 变量的类型是可以不用写的 var a=10 常量的定义 let修饰 */ print(a) let b= print(b ...

  7. 初学swift笔记 函数(六)

    import Foundation /* func 函数名 (参数名:参数类型) { } func 函数名 (参数名:参数类型) ->Void{ } func 函数名 (参数名:参数类型) -& ...

  8. 初学swift笔记 流程控制(五)

    import Foundation ; i<=; i++ { println(i) } let str1="adl;fjasdfl;ouewrouqwperuadf" for ...

  9. 初学swift笔记字典、数组(四)

    import Foundation //字典 元素顺序是无序的 //1.字典元素是键值对 (key:value) //key 一定是可哈希的 string\int\bool var dic1=[&qu ...

随机推荐

  1. python运维开发(二十四)----crm权限管理系统

    内容目录: 数据库设计 easyUI的使用 数据库设计 权限表Perssion 角色表Role 权限和角色关系表RoleToPermission 用户表UserInfo 用户和角色关系表UserInf ...

  2. js编程风格

    1.缩进层级,建议四个空格. 2.语句结尾使用分号. 3.行的长度不超过80个字符. 4.换行建议加两个缩进,即8个空格. 5.合理的利用空行. 6.命名: 6.1 变量,驼峰式大小写,有小写字母开始 ...

  3. VS2005快捷键

    VS2005快捷键 CTRL + SHIFT + B生成解决方案 CTRL + F7 生成编译 CTRL + O 打开文件 CTRL + SHIFT + O打开项目 CTRL + SHIFT + C显 ...

  4. LeetCode_Jump Game II

    Given an array of non-negative integers, you are initially positioned at the first index of the arra ...

  5. 关于DLL模块导出函数

    当然以前我知道有一个.def文件的,里面写的都是需要导出的函数,以为与__declspec(dllexport)作用是一样的.但是今天看公司项目源码的时候才知道,它们两个导出方法是有一定的区别的,编译 ...

  6. tomcat j2ee 目录结构

    一.TOMCAT的目录结构 /bin:存放windows或Linux平台上启动和关闭Tomcat的脚本文件 /conf:存放Tomcat服务器的各种全局配置文件,其中最重要的是server.xml和w ...

  7. MSSQL WITH (NOLOCK) 脏读

    缺点: 1.会产生脏读 2.只适用与select查询语句 优点: 1.有些文件说,加了WITH (NOLOCK)的SQL查询效率可以增加33%. 2.可以用于inner join 语句 脏读: 一个用 ...

  8. svn add后的数据如何取消-svn revert??--zz

    svn add后的数据如何取消-svn revert?? 有时候你发现svn add后,这个提交的数据又不需要了.这时候需要有svn revert来处理了. 原文链接:http://hi.baidu. ...

  9. HDU 5775 Bubble Sort(线段树)(2016 Multi-University Training Contest 4 1012)

    原址地址:http://ibupu.link/?id=31 Problem Description P is a permutation of the integers from 1 to N(ind ...

  10. Binary Tree Paths 解答

    Question Given a binary tree, return all root-to-leaf paths. For example, given the following binary ...