swift (三)

直接上代码:

// **** 函 数 学 习 ****

// 在 swift 当中,一个个的方法就是函数
// 1.0、 定义函数的关键字是 func
//       在定义函数的时候,不管有没有参数都得加上括号,有参数在括号中写。
//       在定义函数时,当没有返回值的时候,也可以写成如下格式,当有返回值的时候在 -> 后面加上返回值的类型
// 1.1、 没有参数没有返回值
func printString() {
    println("Hello World!")
}
func printString2()->() {
    println("Hello World!")
}
// 函数调用
printString()

// 1.2、 有返回值没有参数
func returnHello()->String {
    return "hello"
}
// 调用此函数
println(returnHello())

// 1.3、 没有返回值,有参数
func personHello(str:String) {
    println("str = \(str)")
}
// 调用此函数
personHello("wzgwzg")

// 1.4、 有返回值,有参数
func personHello(str:String)->String {
    return str + "hello"
}
// 调用此函数
println((personHello("gzwgzw")))

// 1.5、 有多个参数,多个返回值
// swift 中之所以能够返回多个值,是因为 swift 当中,函数可以跟元组结合使用
func personHello(str1:String, str2:String)->(string1:String, string2:String) {
    var minValue = str1.lowercaseString ;
    var maxValue = str2.uppercaseString ;
    return (minValue, maxValue)
}
// 调用此函数
println((personHello("WANG", "zhen")))

// 当我们没有添加 var 关键字的时候,参数的默认类型为 let 类型,要想在方法中改变参数的值,是不可以的,要想改变的话就用 var 关键字修饰。
func changeValueInfunc(var number:Int)->Int {
    number++
    return number
}
println((changeValueInfunc(9)))

// 当我们真的想通过函数的调用,来更改两个参数的值,我们要在函数的行参数前面加上 inout 关键字,然后调用的时候,在实参前面加上取地址符,两个配对出现缺一不可。
func swapTwoNumber(inout number1:Int, inout number2:Int) {
    var temp = 0
    temp = number1
    number1 = number2
    number2 = temp
}
var aaa = 10, bbb = 23
swapTwoNumber(&aaa, &bbb)
println("a = \(aaa), b = \(bbb)")

// 函数定义外部参数的名字
// 定义函数外部参数名字对函数的功能,没有任何影响,只是方便告诉我们在调用的时候填入参数的作用是什么。
func printPersonName(personName str:String) {
    println( str )
}
// 函数调用
printPersonName(personName: "wangzhengang")

// 定义函数外部变量的简单写法
// 通过 # 的使用直接使我们函数的参数名作为外部的变量的名字
func printPersonName2(#personName:String) {
    println(personName)
}
printPersonName2(personName: "wangzhengang")

// 函数的类型
// 下面函数的类型为 (Int)->Int
func funcType(number:Int)->Int {
    return number
}

// 对函数类型的验证,,相当于把 funcType 这个函数赋值给 houFunc
var houFunc:(Int)->Int = funcType
println(houFunc(5))

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-12-26 06:33:26

swift (三)的相关文章

Swift(三.函数)

一.swift中的函数分为以下几类吧 1>无参无返   2>无参有返 3>有参无返  4>有参有返  5>有参多返 二.看下面几个例子吧 1>无参无返 func about() ->Void{} 也可以写成func about() ->() {} 还可以写成func about() {} 2>无参有返 func readM() ->String{ return "字符串" } 3>有参无返 func eat(food :

Swift(三)基本运算符

Swift支持大部分标准C语言的运算符,并且对许多特性进行改进来减少常规编码的错误.除了支持基本运算符外,Swift还提供了2个特殊的运算符,分别是:溢出运算符和区间运算符 首先看下基本运算符 import UIKit var str = "Hello, playground" /** 赋值运算符 1. 注意??:与C语言和OC不同,Swift的赋值操作并不返回任何值. 这个特性是你无法把(==)错写成 (=) */ let b = 10 var a = b //if a = b {

Swift学习笔记(三)

六 函数 Swift的统一的功能语法足够灵活来表达任何东西,无论是甚至没有参数名称的简单的C风格的函数表达式,还是需要为每个本地参数和外部参数设置复杂名称的Objective-C语言风格的函数.参数提供默认值,以简化函数调用,并通过设置在输入输出参数,在函数执行完成时修改传递的变量. Swift中的每个函数都有一个类型,包括函数的参数类型和返回类型.您可以方便的使用此类型像任何其他类型一样,这使得它很容易将函数作为参数传递给其他函数,甚至从函数中返回函数类型.函数也可以写在其他函数中来封装一个嵌

swift学习笔记(三)关于拷贝和引用

在swift提供的基本数据类型中,包括Int ,Float,Double,String,Enumeration,Structure,Dictionary都属于值拷贝类型. 闭包和函数同属引用类型 捕获则为拷贝.捕获即定义这些常量和变量的原作用域已不存在,闭包仍然可以在闭包函数体内引用和修改这些值 class属于引用类型. Array的情况稍微复杂一些,下面主要对集合类型进行分析: 一.关于Dictionary:无论何时将一个字典实例赋给一个常量,或者传递给一个函数方法时,在赋值或调用发生时,都会

苹果新的编程语言 Swift 语言进阶(三)--基本运算和扩展运算

一 基本操作运算 1. 赋值操作 在Swift 中,可以使用赋值操作为一个常量或一个变量赋值,也可以使用多元组一次为多个常量或变量赋值. Swift 的赋值操作与其它语言最大的不同是赋值操作除了能够为变量或常量赋值外本身不能够返回值. 这个特征可以避免某些条件下赋值操作错误地用于相等比较操作. 如在C语言中,if (x = =y) 很容易误写作if (x = y) ,虽然逻辑结果不正确,但C语言的编译器却无法检查出这种情况,而Swift 语言却可以有效避免这种情况发生,因为 在Swift 中if

Swift学习第三天之零散知识点

Swiftx学习03 1.创建对象仅仅是类名() 2.添加导航栏let nav = UINavigationController(rootViewController: home) 3.为UITabBarController添加子控制器addChildViewController或者是viewcontrollers 4. tabBar在Swift里面是UITabBarController私有的属性,所以赋值采用kvc的方式 setValue(czTabBar, forKey: "tabBar&q

Swift语法基础入门三(函数, 闭包)

Swift语法基础入门三(函数, 闭包) 函数: 函数是用来完成特定任务的独立的代码块.你给一个函数起一个合适的名字,用来标识函数做什么,并且当函数需要执行的时候,这个名字会被用于“调用”函数 格式: func 函数名称(参数名:参数类型, 参数名:参数类型...) -> 函数返回值 { 函数实现部分 } 没有参数没有返回值 可以写为 ->Void 可以写为 ->() 可以省略 Void.它其实是一个空的元组(tuple),没有任何元素,可以写成() func say() -> V

[爱上Swift]第三弹:使用Swift建立App基本基石

搭架子 首先这次我们会主要使用IOS自带的导航Controller为一个APP建立一个简单的基石, 新建一个空的Application并创建3个swift文件,分别命名为:FirstViewController,SecondViewController,ThirdViewController; 同时在三个Swift的Controller中重写继承类的viewDidLoad()方法: override func viewDidLoad(){ super.viewDidLoad(); } 在整个程序

Welcome to Swift (苹果官方Swift文档初译与注解三十五)---248~253页(第五章-- 函数 完)

Function Types as Return Types (函数类型作为返回值类型) 一个函数的类型可以作为另一个函数的返回值类型.可以在一个函数的返回值箭头后面写上一个完整的函数类型. 例如: 下面的例子定义了两个简单的函数,分别为stepForward 和 stepBackward.其中stepForward函数返回值比它的输入值多1,stepBackward函数返回值比它输入值少1.这两个函数的 类型都是(Int) -> Int: func stepForward(input: Int