今天给大家介绍 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. HP 7440老机器重启

    一大早内存就报内存100% 处理流程 1.kmeminfo -u | more ,找出内存占用过大的进程ID --------------------------------------------- ...

  2. 获取当前html标签自定义属性的值

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  3. ubuntu 14.04 编译内核出现unable to locate package ncurses-devel 问题的解决

    http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece7631046893b4c4380146d96864968d4e414c422461614 ...

  4. android中掩码的使用

    掩码是一串二进制代码对目标字段进行位与运算,屏蔽当前的输入位,所以有时又称为屏蔽码. 在Android中常使用这种技巧设置flag来判断标记,具体实现可参考framework层的WindowManag ...

  5. processing学习笔记

    这是从http://funprogramming.org/视频学习过程中做的笔记,没法看视频的话,请FQ 点point(x,y); 线line(x,y,x2,y2); 背景background(x), ...

  6. SQL Server 内存数据库原理解析

    前言 关系型数据库发展至今,细节上以做足文章,在寻求自身突破发展的过程中,内存与分布式数据库是当下最流行的主题,这与性能及扩展性在大数据时代的需求交相辉映.SQL Server作为传统的数据库也在最新 ...

  7. Linux在Hyper-V中实现与Windows的宽带共享上网

    相信不少读者都会做(或者曾经做过)这么一项活动——把一个Linux系统安装到Windows系统下的虚拟机软件中,然后在Windows这个大环境中对Linux进行学习或者一些实验操作.在进行这么一项活动 ...

  8. C#设计模式——单件模式

    一.为何需要单件模式 需求 我们开发了一个大型的项目,其中存在许多的工具类.但是其中很多的工具类我们并不是经常使用得到,甚至 一次都不会使用.但是这些工具类都是静态的类,会消耗很多的内存,即使一次都不 ...

  9. [JS13] ActivetX

    <HTML> <head> <title>JavaScript Unleashed</title> <script type="text ...

  10. Minifying Angular应用时产生的问题

    一.产生的问题 如果你正在进行AngularJS的项目开发,生产时Minified JS文件有没有遇到下面问题: angular.module("myApp", []) .cont ...