函数

函数

介绍

// func
// 在Swift中,一个个的方法就是函数
// 1.定义函数的关键字是func
// 在定义函数的时候,不管有没有参数都加括号,参数写在括号中
// 在定义函数时,当没有返回值的时候,也可以写成如下格式,当有返回值的时候在->后面加上返回值的类型

1.1 没有参数没有返回值

func printString()->() {
println("hello world")
}
// 函数调用
printString()

1.2 有返回值没有参数

 func retrunHello()->String {
return ""
}
println(retrunHello())

1.3 没有返回值有参数

 func personHello(str:String) {
println("hello, \(str)")
}
personHello("xiaoming")

1.4 有返回值有参数

 func returnPerson(str:String)->String {
return str + " hello"
}
println(returnPerson("hhahahhh"))

1.5 有多个参数

Swift中函数之所以能够返回多个值,是因为Swift中函数可以跟元组结合使用

 func moreValue(str:String, str2:String)->(String, String) {
var minValue = str.lowercaseString
var maxValue = str2.uppercaseString
return (minValue, maxValue)
} println(moreValue("ABC", "def"))

// 当我们没有添加var关键字的时候,参数默认的类型为let类型,要想在函数中改变参数的值,是不可以的,要想改变的话,用var修饰 func

 func changeValueInFunc(var number:Int) {
number++
println(number)
}
changeValueInFunc()

// 当我们真的想通过调用函数修改参数的值,要在函数形参前面加上inout关键字,然后调用的时候,在实参的前面加上取地址符,两个配套使用,缺一不可

 func swapTwoNumber(inout number1:Int,inout number2:Int) {
var temp =
temp = number1
number1 = number2
number2 = temp
} var a = , b =
swapTwoNumber(&a, &b)
println("a = \(a), b = \(b)")

// 函数定义外部参数名字

// 定义函数外部参数名字,对函数的功能没有任何影响,只是方便在调用的时候告诉填入参数的作用是什么

 func printName(personName str:String) {
println(str)
}
printName(personName: "xiaoming")

// 外部参数名字的简单写法

// 通过#的使用直接使我们函数的参数名作为外部变量的名字

 func printPersonName(#personName:String) {
println(personName)
}
printPersonName(personName: "houzhichao")

函数的类型

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

函数类型的验证

 func funcType(number:Int)->Int {
return number
}

Swift函数的更多相关文章

  1. Swift函数编程之Map、Filter、Reduce

    在Swift语言中使用Map.Filter.Reduce对Array.Dictionary等集合类型(collection type)进行操作可能对一部分人来说还不是那么的习惯.对于没有接触过函数式编 ...

  2. 如何在C语言中调用Swift函数

    在Apple官方的<Using Swift with Cocoa and Objectgive-C>一书中详细地介绍了如何在Objective-C中使用Swift的类以及如何在Swift中 ...

  3. Swift 函数

    1: 函数形式: Swift函数以关键字func 标示.返回类型->后写明.如果没有返回类型可以省去.多个参数用,分割.其中参数名字在前:类型描述 func GetName(strName:St ...

  4. swift函数的用法,及其嵌套实例

    import Foundation //swift函数的使用 func sayHello(name userName:String ,age:Int)->String{ return " ...

  5. 4 .Swift函数|闭包

    在编程中,我们常把能完成某一特定功能的一组代码,并且带有名字标记类型叫做函数,在C语言中,我们知道函数名就是一个指针,它指向了函数体内代码区的第一行代码的地址,在swift中也具有同样的功效. 在Sw ...

  6. Swift函数|闭包

    在编程中,我们常把能完成某一特定功能的一组代码,并且带有名字标记类型叫做函数,在C语言中,我们知道函数名就是一个指针,它指向了函数体内代码区的第一行代码的地址,在swift中也具有同样的功效. 在Sw ...

  7. Swift函数的定义建议

    /* Swift中函数命名的智慧 */ // 1.一般情况下, 我们写一个函数是这么写的 func sayHello(name: String , greeting: String) { print( ...

  8. Swift 函数和类

    函数: func sayHello(personName:String,z:Int)->{ return "hello"+personName+z } print(sayHe ...

  9. Swift函数柯里化(Currying)简谈

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 下面简单说说Swift语言中的函数柯里化.简单的说就是把接收多 ...

随机推荐

  1. 通过js引用外部脚本(嘿嘿,方便直接在浏览器上调试抓取代码)

    最近折腾爬虫,后端使用jQuery进行数据采集,一般都是先从浏览器中将采集代码调试好后直接放到后端跑了. 有些网址没有引用jQuery,那调试起来就不方便了,可以用以下代码动态添加script标签,将 ...

  2. jQuery3的新特性

    前言:自从react,vue等方便的新框架出现后,好多大公司已经摒弃了jquery,但是大部分的公司还在使用,并且jquery的版本还在一直更新中.jquery2.x版本将不再支持IE6/7/8浏览器 ...

  3. [Android] keystore生成

    keytool -genkey -alias agg_keystore -keyalg RSA -validity 20000 -keystore agg.keystore keytool -expo ...

  4. apache 局域网访问

    很多的朋友都想把自己的电脑打造为服务器使别人能够访问.比如说你自己写了一网站,只能自己通过localhost访问或127.0.0.1访问.但是怎么让别人的电脑也能访问呢?来看看自己写的网站.现在我来讲 ...

  5. img的绝对路径转为相对路径

    $('#add_img').on('change', function(){ var objUrl = getObjectURL(this.files[0]) ; if (objUrl) { $(th ...

  6. SublimeText2 快捷键一览表

    SublimeText2 快捷键一览表 Sublime Text比起Notepad++,UltraEdit之类Code编辑器来说,其功能有过之而无不及,配合着各种插件使用,Sublime Text在实 ...

  7. JAVA 1.5 运算符

    1. 关系运算符:大于(>).小于(<).等于(==).不等于(!=).大于等于(>=).小于等于(<=),关系运算的结果是个boolean值.2. 逻辑运算符:重点讲解两个, ...

  8. 看懂UML类图

    这里不会将UML的各种元素都提到,我只想讲讲类图中各个类之间的关系: 能看懂类图中各个类之间的线条.箭头代表什么意思后,也就足够应对 日常的工作和交流: 同时,我们应该能将类图所表达的含义和最终的代码 ...

  9. java面向对象设计原则

    原则1:DRY(Don't repeat yourself) 即不要写重复的代码,而是用"abstraction"类来抽象公有的东西.如果你需要多次用到一个硬编码值,那么可以设为公 ...

  10. 《C++ Primer》学习笔记【第一部分 C++基础】

    第2章  整型的赋值:当我们试着把一个超出其范围的值赋给一个指定类型的对象时,结果如何?答案取决于类型是signed还是unsigned的.对于unsigned,编译器会将该值对unsigned类型的 ...