Swift 学习之函数和闭包与对象和类—002
2014-10-13 15:21
369 查看
/*************************函数和闭包**********************/
//使用func来声明一个函数,使用名字和参数来调用函数。使用->来指定函数返回值
func test(name:
String,age: Int) ->
String{
return "I am
\(name),I am \(age)"
}
test("pengzhihao",
25)
func greet(name:
String,day: String) ->
String{
return "Hello
\(name),today is \(day)"
}
greet("pengzhihao",
"Monday")
//无参函数
func getGasPreces() -> (Double,Double,Double){
return(3.59,
3.69, 3.79)
}
getGasPreces()
//函数的参数数量是可变的,用一个数组来获取它们
func sumOf(numbers:
Int...) -> Int{
var sum = 0
for number in numbers{
sum += number
}
return sum
}
sumOf()
sumOf(42,28)
//函数可以嵌套,被嵌套的函数可以访问外侧函数的变量
func returnFifteen() ->
Int{
var y =
10
func add(){
y +=
5
}
add()
return y
}
returnFifteen()
//函数可以作为另一个函数的返回值
func makeIncrementer() -> (Int ){
func addOne(number:
Int) -> Int{
return 1 + number
}
return addOne(15)
}
makeIncrementer()
//函数可以当做参数传入另一个函数
func lessThanTen(number:
Int) -> Bool{
return number<10
}
var numbers = [20,
19, 17,
12]
func hasAnyMatches(list: [Int],condition:
Int -> Bool) ->
Bool{
for item in list{
if condition(item){
return
true
}
}
return
false
}
hasAnyMatches(numbers,
lessThanTen)
/*************************对象和类**********************/
//使用class和类名来创建一个类,类中的属性声明和方法声明分别与变量声明和函数声明一样
class Shape{
var numbersOfSizes =
0
let color = "red"
func simpleDescreption() ->
String{
return
"A shape with \(numbersOfSizes) sides"
}
func getColor(color:
NSString) -> String{
return "color is
\(color)"
}
}
var shape =
Shape()
//不能再给 shape
的 color 赋值,因为该属性为常量
//cannot assign to 'color' in 'shape'
//shape.color = "gree"
shape.numbersOfSizes =
7
let color =
shape.getColor("gree")
var sides =
shape.simpleDescreption()
shape
//添加构造函数来初始化类实例,使用 init
来创建一个构造器
class NameShape {
var numberOfSides:
Int = 0
var name: String
init(name: String) {
self.name = name
}
func simpleDescreption() ->
String{
return
"A shape with \(numberOfSides) sides"
}
}
var nameShape =
NameShape(name: "pengzhihao")
//创建一个 NameShape
的子类
class Square:
NameShape {
var sideLength: Double
init(sideLength: Double,name:
String) {
self.sideLength=sideLength
super.init(name: name)//调用父类的 init
方法
numberOfSides =
4
}
//如果父类中没有该方法,如果子类添加 override
也会报错
func area() -> Double {
return
sideLength * sideLength
}
//如果重写父类的方法,需要在 func
前添加 override
override func simpleDescreption() ->
String{
return
"A shape with sides of length \(sideLength)"
}
}
let test =
Square(sideLength:
5, name: "my test square")
test .area()
test.simpleDescreption()
//使用func来声明一个函数,使用名字和参数来调用函数。使用->来指定函数返回值
func test(name:
String,age: Int) ->
String{
return "I am
\(name),I am \(age)"
}
test("pengzhihao",
25)
func greet(name:
String,day: String) ->
String{
return "Hello
\(name),today is \(day)"
}
greet("pengzhihao",
"Monday")
//无参函数
func getGasPreces() -> (Double,Double,Double){
return(3.59,
3.69, 3.79)
}
getGasPreces()
//函数的参数数量是可变的,用一个数组来获取它们
func sumOf(numbers:
Int...) -> Int{
var sum = 0
for number in numbers{
sum += number
}
return sum
}
sumOf()
sumOf(42,28)
//函数可以嵌套,被嵌套的函数可以访问外侧函数的变量
func returnFifteen() ->
Int{
var y =
10
func add(){
y +=
5
}
add()
return y
}
returnFifteen()
//函数可以作为另一个函数的返回值
func makeIncrementer() -> (Int ){
func addOne(number:
Int) -> Int{
return 1 + number
}
return addOne(15)
}
makeIncrementer()
//函数可以当做参数传入另一个函数
func lessThanTen(number:
Int) -> Bool{
return number<10
}
var numbers = [20,
19, 17,
12]
func hasAnyMatches(list: [Int],condition:
Int -> Bool) ->
Bool{
for item in list{
if condition(item){
return
true
}
}
return
false
}
hasAnyMatches(numbers,
lessThanTen)
/*************************对象和类**********************/
//使用class和类名来创建一个类,类中的属性声明和方法声明分别与变量声明和函数声明一样
class Shape{
var numbersOfSizes =
0
let color = "red"
func simpleDescreption() ->
String{
return
"A shape with \(numbersOfSizes) sides"
}
func getColor(color:
NSString) -> String{
return "color is
\(color)"
}
}
var shape =
Shape()
//不能再给 shape
的 color 赋值,因为该属性为常量
//cannot assign to 'color' in 'shape'
//shape.color = "gree"
shape.numbersOfSizes =
7
let color =
shape.getColor("gree")
var sides =
shape.simpleDescreption()
shape
//添加构造函数来初始化类实例,使用 init
来创建一个构造器
class NameShape {
var numberOfSides:
Int = 0
var name: String
init(name: String) {
self.name = name
}
func simpleDescreption() ->
String{
return
"A shape with \(numberOfSides) sides"
}
}
var nameShape =
NameShape(name: "pengzhihao")
//创建一个 NameShape
的子类
class Square:
NameShape {
var sideLength: Double
init(sideLength: Double,name:
String) {
self.sideLength=sideLength
super.init(name: name)//调用父类的 init
方法
numberOfSides =
4
}
//如果父类中没有该方法,如果子类添加 override
也会报错
func area() -> Double {
return
sideLength * sideLength
}
//如果重写父类的方法,需要在 func
前添加 override
override func simpleDescreption() ->
String{
return
"A shape with sides of length \(sideLength)"
}
}
let test =
Square(sideLength:
5, name: "my test square")
test .area()
test.simpleDescreption()
相关文章推荐
- 王亟亟的Python学习之路(10)-函数对象的作用域,函数作为返回值,闭包
- Swift学习笔记 - 函数与闭包
- Swift2学习:Swift概览3-函数和闭包
- Swift学习3--函数和闭包
- Swift 学习笔记 [1] 类型 值 集合 函数 闭包
- 王亟亟的Python学习之路(10)-函数对象的作用域,函数作为返回值,闭包
- swift 学习(二)基础知识 (函数,闭包,ARC,柯里化,反射)
- iOS学习笔记42-Swift(二)函数和闭包
- swift基础学习(04)[闭包、函数、枚举、类和结构体]
- Swift学习笔记-函数和闭包(1)
- swift swift学习笔记--函数和闭包
- JavaScript学习笔记(二)——闭包、IIFE、apply、函数与对象
- iOS学习笔记42-Swift(二)函数和闭包
- swift学习笔记2——函数、闭包
- iOS学习笔记42-Swift(二)函数和闭包
- Swift学习笔记-函数和闭包(2)
- Swift学习笔记 -- 函数和闭包
- 学校学习ios教程笔记,第六节swift中的函数以及闭包
- Swift学习笔记 - 函数与闭包
- php程序员学习javascript:第二章:javascript对象函数(一):字符串对象函数