今天给大家介绍 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. php array转json、xml

    class Encode{ public static function jsonEncode($code,$message,$data){ $result = array( 'code' => ...

  2. Java中this与super的区别【6】

    若有不正之处,请多多谅解并欢迎批评指正,不甚感激.请尊重作者劳动成果: 本文原创作者:pipi-changing本文原创出处:http://www.cnblogs.com/pipi-changing/ ...

  3. 【二分答案】【贪心】bzoj3969

    http://www.cnblogs.com/mmlz/p/4497118.html #include<cstdio> #include<algorithm> using na ...

  4. Git创建 项目

    一 .  github上创建立一个项目 用户登录后系统,在github首页,点击页面右下角“New Repository” 填写项目信息: project name: hibernate-demo d ...

  5. Activity之间的通信

    通常Activity之间的通信有三种方式:单向不传参数通信.单项传参数通信和双向通信. 这几种传递方式都需要通信使者Intent.以下将用代码来辅助理解. 1.单向不传递参数通信 public cla ...

  6. Java方法的封装

    类的封装性即不能让外面的类随意修改一个类的成员变量: 在定义一个类的成员(包括变量和方法),使用private关键字说明这个成员的访问权限,只能被这个类的其他成员方法调用,而不能被其他的类中的方法所调 ...

  7. 关于Guid

    GUID(全局统一标识符)是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的.通常平台会提供生成GUID的API.生成算法很有意思,用到了以太网卡地址.纳秒级时间.芯片ID码和许多可 ...

  8. Mono、Unity和Xamarin三者关系

    1.Mono: .net是微软出的标准.如果站在Mono的角度来说,这套标准能规定编译器产生一些符合一定条件的文件出来,这些中间文件最后在目标平台上被解析成跟机器相关的东西.问题是,开始只有Windo ...

  9. Dynamic CRM 2013学习笔记(二十六)报表设计:Reporting Service报表 动态参数、参数多选全选、动态列、动态显示行字体颜色

    上次介绍过CRM里开始报表的一些注意事项:Dynamic CRM 2013学习笔记(十五)报表入门.开发工具及注意事项,本文继续介绍报表里的一些动态效果:动态显示参数,参数是从数据库里查询出来的:参数 ...

  10. Jquery最全过滤器总结

    不管什么时候,总是有这么些时候:当我们使用jQuery的各种过滤器时,总是有那么几个记不牢,还要搜索一下或者翻翻手册!多少次想总结一下,最终都没总结,现在网上找到一篇总结的不错的,但是排版有点乱,本人 ...