今天给大家介绍 swift函数,swift函数和c#,js的写法大致一直,但是与object-c写法有很大不同点。废话不多说,直接开始了。

1:函数  --常量参数

  func  函数名( 参数变量:类型 ,参数变量:类型...){}
说明:
: func 是函数关键字
2:{} 函数体
3: 参数变量是默认常量类型,不能在函数函数体里面直接修改
即 func A (value:String)  与 func A (let value:String)写法是相同的,即value 是常量。

例子

/*
1: func 函数关键字
2:两个参数变量 value 和value1都是常量 不能修改
3:SayHello("hello","swift") 调用函数的方法
*/ func SayHello(value :String,value1:String){
var str = value + " " + value1
println(str)
} SayHello("hello","swift") 运行结果 hello swift 注意点:
----------------------错误写法--------------
func SayHello(value :String,value1:String){
value = "AA" //错误写法 在函数中参数变量默认是常量类型不能修改
}

2:函数  --变量参数

  func 函数名( var  参数变量 : 类型,... ) {}
说明
: func 函数关键字
: var 参数变量 :类型 表示参数变量是可变变量,不是常量,可以任意修改

例子

func  SayHello(var value :String){
value = "AA" //value 是被var 修改,value是可变变量
println(value)
} SayHello("hello") 运行结果
AA

3:函数 --参数默认值

func  函数名(参数值 :类型=默认值){}
说明
1:func是函数的关键字
2:如果参数值,不赋值,参数值就采用默认值

例子

func SayHello(value:String = "AA"){
println("value=\(value)")
} SayHello(value:"") //带参数
SayHello()//不带参赛 运行结果
value=
value=AA

三:函数 --可变参数

    func 函数名(参数名 类型...){}
说明 :
参数名 类型... 说明 该参数可以接触N个参数。

例子

func SayHello(values :Double...){
for temp in values{
println("temp=\(temp)")
} } SayHello(1.1,1.2,1.3) 运行结果
temp=1.1
temp=1.2
temp=1.3

4:函数 --外部参数名

 func  函数名 (参数变量:类型 ,参数说明  参数变量:类型)
说明:
:函数中的第一个不需要参数说明
:参数说明 + 参数名 : 类型 ,构成一个参数
调用方法
函数名(参数值,参数说明:参数值,参数说明:参数值....)

例子

// joinStr value1 : String 是一个参数

func SayHello(value : String, joinStr value1 : String){
var str = value + value1
println("str= \(str)")
} SayHello ("hello ",joinStr:"Swift") 运行结果
str=hello Swift

5:函数 输入输出参数

func 函数名(inout 函数变量 类型)

    说明:
inout 修辞的变量 函数内部可以直接修改,其外部可以获取到

例子:

func SayHello (inout value:String){
value = "Hello Swift"
} var str = "hello"
SayHello(&str) //此时传递 字符串的地址
println(str) 运行结果
Hello Swift

6:函数返回值 --元组

/*
func 函数名 ( 参数变量 : 类型 ,参数说明 参数变量 :类型)-> 类型 1:func 函数关键字
2: ->类型 ,返回类型
*/

例子

//------------------------返回 元组
func SayHello(value:String ,nums Value1:String)->(String,String){ return (value,Value1)
} var (A,B)=SayHello("hello",nums:"swift") println("A=\(A),B=\(B)") 运行结果

  A=hello,B=swift

7:函数返回值 ---函数

// 自加函数
func Add(num : Int)->Int{
return num +
}
//自减函数 func zj(num : Int)->Int{ return num -
} //定义返回函数类型 func SayHello(num:Bool)->(Int)->Int{ //其中 (Int)->Int 返回参数为整形,返回值为整形的函数 return num ? Add : zj
} var num = var fun:(Int)->Int = SayHello(num > ); num = fun(num) println("num=\(num)") 运行结果 num=

后面的文章,我回陆续把我学习到swift语言的知识写出来形成一个系列。由于是新语言,难免有不足,欢迎给我提出意见。也可以加我QQ 1436051108一起讨论,如果您有什么问题,也可以直接在QQ留言发给我,我看到之后第一时间回复您

最后总结一下。送上一直思维导图,作为文章的结束

swift入门篇-函数的更多相关文章

  1. Swift入门篇-闭包和函数

    今天主要是给大家分享的是 swift中闭包的用法,我个人觉得闭包就是函数的简写方法,如果您函数不是很熟悉请查阅 swift入门篇-函数 1:函数类型 函数类型 var 变量 :(类型)->返回值 ...

  2. Swift入门篇-Hello World

    提示:如果您使用手机和平板电脑看到这篇文章,您请在WIFI的环境下阅读,里面有很多图片, 会浪费很多流量. 博主语文一直都不好(如有什么错别字,请您在下评论)望您谅解,没有上过什么学的 最近这2天主要 ...

  3. Swift入门篇-循环语句

    今天早上一起来所有新闻都是报道荷兰5-1战胜西班牙,我一看没有搞错吧,顿时想都如果中国队vs荷兰队也不至于会输的怎么惨吧,难道是荷兰队开挂了,于是我看了一下昨天比赛的视频直播,还真是新闻报道的那样,顿 ...

  4. Swift入门篇-字符串和字符

    今天主要是介绍一下字符串的用法 ,字符串的语法和object-c语法不太一样,但是思想是一样,就是写法不太一样.如果您对.net和java语法比较熟悉的话,那您几乎没有深压力.如果您对swift 基本 ...

  5. Swift入门篇-基本类型(2)

    现在我也在学习Swift语言,常常去逛很多苹果社区和论坛,看到了圈子很多奇怪的现象,发现很多人都赶忙去翻译 Swift书籍 和 发布Swift的视频 .他们这种对新知识的探索精神我本人是很佩服的.但是 ...

  6. Python入门篇-函数、参数及参数解构

    Python入门篇-函数.参数及参数解构 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.函数概述 1>.函数的作用即分类 函数 数学定义:y=f(x) ,y是x的函数,x ...

  7. Swift入门篇-swift简介

    潜水博客园很多年,闲来无事,聊一下自己的经历,语文不好(如有什么错别字,请您在下评论)望您谅解,没有上过什么学的 在前期 ios入门篇 -hello Word(1) 文章中介绍我这半年准备写一些ios ...

  8. Swift入门篇-集合

    一:数组 一:可变数组 定义:数组使用有序列表存储相同类型的多重数据. 格式: 第一种格式 var 变量: 类型[] = [变量值,变量值,...] 第二种格式 var 变量 =[变量值,变量值,.. ...

  9. Swift入门篇-基本类型(3)

    一:元组 格式 变量或常量关键字 元组变量 = ( 变量,变量, …) 说明: : 元组变量还是一个变量,只不过表现方式和其他变量不一样 :()括号里面可以放入N个变量组成 例子: import Fo ...

随机推荐

  1. java常用类

    String 字符串类 System 可得到系统信息 Runtime类 StringBuilder(StringBuffer)类 Thread 线程类 Math 与数学有关的工具类 Date 日期类( ...

  2. Find Minimum in Rotated Sorted Array leetcode

    原题链接 直接贴代码,这道题是 search in rotated sorted array leetcode 的前面部分! class Solution { public: int findMin( ...

  3. SQL语句中如何把文件以二进制数组形式存入数据库

    System.IO.FileStream fs = new FileStream("1.txt", FileMode.Open); string strConn = "D ...

  4. Swift经典知识整理

    1  关于Swift Swift 是一种适用于 iOS 和 OS X 应用的全新编程语言,它建立在最好的 C 和 Objective-C 语言之上,并且没有 C 语言的兼容性限制.Swift 采用安全 ...

  5. 网络闪段致slave 出错分析

    告警信息 check_ins_slave_io_running (err_cnt:1)critical-  slaveio not run on ins:3014,3051,3060,3079,309 ...

  6. ORACLE修改用户表所属表空间的步骤

    ORACLE修改用户表所属表空间的步骤 使用脚本进行修改.据目前所了解,正长情况下需要修改表的空间和表的索引的空间,如果涉及到BOLB字段的表,修改的方式又不一样了!正常情况下的修改脚本:1.修改表的 ...

  7. 转:DataSet、DataTable、DataRow、DataColumn区别及使用实例

    DataSet 表示数据在内存中的缓存. 属性 Tables  获取包含在 DataSet 中的表的集合. ds.Tables["sjxx"] DataTable 表示内存中数据的 ...

  8. Android-Universal-Image-Loader三大组件DisplayImageOptions、ImageLoader、ImageLoaderConfiguration详解

    一.介绍 Android-Universal-Image-Loader是一个开源的UI组件程序,该项目的目的是提供一个可重复使用的仪器为异步图像加载,缓存和显示.所以,如果你的程序里需要这个功能的话, ...

  9. [ACM_模拟] ZOJ 3713 [In 7-bit 特殊输出规则 7bits 16进制]

    Very often, especially in programming contests, we treat a sequence of non-whitespace characters as ...

  10. VR快速发展下,从业者如何把握机会?

      美国科技博客VentureBeat周末刊登赛斯·沙赫纳(Seth Schachner)的文章,分析了在虚拟现实快速发展的情况下,业内所面临的机会,以及如何把握这些机会.   沙赫纳是资深的数字战略 ...