函数

作者: 彼岸的黑色曼陀罗 | 来源:发表于2016-09-01 20:02 被阅读0次

函数

  • swift里的函数就是OC里的方法
  • 格式:
    • func:关键字,多个参数之间用,分隔,也可以没有参数
    • (->)指向返回值类型
func 函数名(参数类别) ->返回值类型{
   代码块
   return 返回值
}
  • 函数的基本使用
  • 没有参数没有返回值
func about ()->Void{
  print("iphone7")
}
//调用函数
about()
//简便写法
func about(){
  print("iphone7")
}
  • 有参数没有返回值的函数
func callPhone(phoneNum: String){
    print("打电话给\(phoneNum)")
    print("打电话给:"+phoneNum)
}
callPhone("+ 86 110")
  • 没有参数有返回值的函数
func newMessage() ->String{
  return "吃饭了吗"
}
newMessage()
  • 有参数有返回值的函数
func addNums(num1 :Int,num2 :Int)->Int{
   return num1 +num2
}
let result = addNums(20,num2:30)

函数的使用注意(了解)

  • 1.内部参数和外部参数
    • 内部参数(内部参数名称)
      • 在函数内部可以看到的标识符就是内部参数名称(num1,num2就是内部参数)
      • 默认情况下,所有的参数都是内部参数
    • 外部参数
      • 在函数外部可以看到的标识符就是外部参数(num1看不见,num2以后的都能看见)
      • 从第二个参数开始都是外部参数,但是第一个参数默认不是外部参数
      • 如果希望第一个参数也是外部参数,那么可以在第一个参数的标识符前,加上第一个参数的外部参数名称
      • 如果希望后面的参数不是外部参数,可以在标识符前加_
      • 如果想要修改外部参数名称,就在外部参数标识符前写上新的名字
func sum(num1 :Int ,num2: Int)->Int{
   return num1 + num2
}
sum(20,num2 :30)
//把num1变为外部参数
func sum(num1 num1 :Int ,num2: Int)->Int{
   return num1 + num2
}
sum(num1 :20,num2 :30)
//都不是外部参数
func sum(num1 :Int , _ num2: Int)->Int{
   return num1 + num2
}
sum(20,30)
  • 2.默认参数
    • 参数后面写一个等号
    • 等于后面写一个默认的值
func makeCoffee (coffeeName:String = "雀巢")->String{
   return "制作了一杯爱心\(coffeeName)咖啡"
}
let coffee1 = makeCoffee("拿铁")
makeCoffee("摩卡")
makeCoffee()
  • 3.可变参数
    • nums: Int...
    • nums是一个数组类型
    • 把所有的数组放到数组里了
    • 遍历数组就可以得到想要的结果
func sum(num1 :Int ,num2 :Int)->Int {
    return num1 +num2
}
sum(20,num2:30)
//把四个、十个数字相加
//可变参数
func sum (nums :Int...)->Int{
   var total = 0
   for num in nums{
    total += num
   } 
}
sum(20,30,40,50)
//print()也是可变函数,参数是可变的
print()
  • 4.指针(引用类型)
    • 怎么通过一个函数交换m/n的值
    • 关键字:inout
var m = 20
var n = 30
-->报错:常量是不能修改的
func changeNum(num1:Int , num2 :Int){
let temp = num1 
num1 = num2 
num2 = temp 
}
-->报警告,值传递,本质上不会交换m/n
func changeNum( var num1:Int , num2 :Int){
let temp = num1 
num1 = num2 
num2 = temp 
}
changeNum(m,num2:n)
-->指针传递:
func changeNum(inout num1 :Int ,inout num2 :Int){
let temp = num1 | num1是地址,在等号右边,相当于取值
num1 = num2 |赋值到num1的地址里,把num1里的值改num2
num2 = temp |把temp的值赋值到num2的地址里
}
change(&m,num2 :&n)
  • 5.函数嵌套使用
    • 可以在方法里面写方法
    • 建议不要这样写,代码阅读性差
func demo(){
  func test(){
  func test1(){
    print("test1")
  }
    print("test")
  }  
print("demo")
   test() | 先打印demo再打印test
}
demo

函数的类型

  • 函数的类型是由函数的参数类型和返回值类型共同组成的

    • 类型(Int ,Int)->Int
    • 把函数作为方法的参数,把函数作为方法的返回值
    • 函数式编程
      • 编程语言:Lisp
      • 比C语言C++出现的都早
      • 天才程序员使用的语言
      • 现代所有语言的高度仅仅达到了这门语言1960+的高度(比如OC的block)
      • 数学
      • Java 3000行 == Lisp 100行
      • 《黑客与画家》
      • 用于人工智能领域
func sum(num1 :Int ,num2 :Int)->Int{
return num1 +num2
}
func multiply(num1 :Int ,num2:Int)->Int{
return num1 * num2
}
var abc :(Int ,Int)->Int = sum
abc = multiply
abc(20,30)
//函数作为方法的参数,把函数以参数的形式传到另外一个地方
func printResult(cba :(Int ,Int)->Int){
print(cba(20,30))
}
printResult(sum)

相关文章

  • Excel(三)

    AND函数 OR函数 NOT函数 IF函数 频率分析函数FREQUENCY

  • if、else if、for、while、repeat函数

    ①if函数 ②else if函数 ③for函数 ④while函数 ⑤repeat函数

  • strsplit、mapply、paste、match函数

    strsplit函数 mapply函数 strsplit函数 mapply函数 paste函数 match函数 第...

  • Oracle中常用函数(SQL)

    Oracle函授有以下几个分类:数字函数、字符函数、日期函数、转换函数、集合函数、分析函数 数字函数: 字符函数:...

  • MySQL函数

    字符函数 数字运算函数 比较运算符和函数 日期时间函数 信息函数 聚合函数 加密函数 流程函数

  • BI-SQL丨AND & OR & IN

    AND函数 & OR函数 & IN函数 AND函数、OR函数和IN函数都可以理解是WHERE函数的补充,当然也可以...

  • Python之函数

    课程大纲 函数定义 函数的参数 函数的返回值 高阶函数 函数作用域 递归函数 匿名函数 内置函数 函数式编程 将函...

  • 函数基本知识

    函数 函数的定义: def 函数名() 函数的调用:函数名() #不能将函数调用放在函数定义上方 函数的文档注...

  • 积分表——不定期更新

    基本初等函数包括: 常函数: 幂函数 指数函数 对数函数 三角函数 反三角函数 I、反函数Ⅱ、复合函数:初等函数(...

  • MySQL基本使用

    函数 常用函数 数学函数 字符串函数 日期函数

网友评论

      本文标题:函数

      本文链接:https://www.haomeiwen.com/subject/zrhhettx.html