1.0 函数的定义与调用( Defining and Calling Functions )

习惯了C#了语法,看到下面的这样定义输入参数实在感到非常别扭,func 有点 Javascript的感觉,还算习惯。函数调用与其他语言没什么区别

  1. //有输入参数和返回值的函数
  2. //输入参数为名name,数据类型为String
  3. //返回值 String类型
  4. func SayHello(name:String) ->String {
  5. return "Hello,"+name;
  6. }
  7. //调用函数
  8. SayHello("_luo")

2.0 函数参数与返回值 ( Function Parameters and Return Values )

  1. // 2.1 多重输入参数 ( Multiple Input Parameters )
  2. func HalfOpenRangeLength(start:Int,end:Int) ->Int{
  3. return end - start;
  4. }
  5. // 2.2 无参函数 ( Functions Without Parameters )
  6. func SayHelloWorld()->String{
  7. return "Hello World";
  8. }
  9.  
  10. // 2.3 无返回值函数 ( Functions Without Return Values )
  11. func SayGoodbye(name:String){
  12. println("Goodbye,\(name)");
  13. }
  14.  
  15. // 2.4 多重返回值函数 (Functions with Multiple Return Values )
  16. //你可以用元组(tuple)类型让多个值作为一个复合值从函数中返回。
  17. //计算一个字符串中元音,辅音和其他字母的个数
  18. func Count(str:String)->(vowels:Int,consonants:Int,others:Int){
  19. var vowels=0,consonants=0,others=0;
  20. for item in str {
  21. switch String(item).lowercaseString{
  22. case "a","e","i","o","u":vowels++;
  23. case "b", "c", "d", "f", "g", "h", "j", "k", "l", "m",
  24. "n", "p", "q", "r", "s", "t", "v", "w", "x", "y", "z":consonants++;
  25. default:others++; }
  26. }
  27. return (vowels,consonants,others);
  28. }

3.0 函数参数名称 ( Function Parameter Names )

上面的函数中的参数名仅在函数体中使用,不能这函数调用时使用,这种类型的参数名称为[局部参数名]。

与C#相比,Swift 有外部参数名。

外部参数名,是为了在调用函数时,可以指出各个实参的用途是什么。

(个人觉得实在是太不人性化了,为了知道这个参数的意义还要弄个外部参数名。C#就比较好了 在vs,只要写了注释,调用的时候就会显示各个参数的用途,顿时感觉到vs的强大)

  1. // 3.1 外部参数名 ( External Parameter Names )
  2. //外部参数名写在局部参数名之前,用空格分隔
  3. //如果你提供了外部参数名,那么函数在被调用时,必须使用外部参数名。
  4. //----没有外部参数名的写法
  5. Swift - 函数(Functions)总结 - 比较 C# 的异同的更多相关文章

      1. asp.net MVC helper 和自定义函数@functions小结
      1. asp.net Razor 视图具有.cshtml后缀,可以轻松的实现c#代码和html标签的切换,大大提升了我们的开发效率.但是Razor语法还是有一些棉花糖值得我们了解一下,可以更加强劲的提升我们 ...

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

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

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

      1. swift函数的用法,及其嵌套实例
      1. import Foundation //swift函数的使用 func sayHello(name userName:String ,age:Int)->String{ return " ...

      1. asp.net MVC 自定义@helper 和自定义函数@functions小结
      1. asp.net Razor 视图具有.cshtml后缀,可以轻松的实现c#代码和html标签的切换,大大提升了我们的开发效率.但是Razor语法还是有一些棉花糖值得我们了解一下,可以更加强劲的提升我们 ...

      1. [转]asp.net MVC helper 和自定义函数@functions小结
      1. 本文转自:http://www.cnblogs.com/jiagoushi/p/3904995.html asp.net Razor 视图具有.cshtml后缀,可以轻松的实现c#代码和html标签的 ...

      1. 【概率论】3-8:随机变量函数(Functions of a Random Variable)
      1. title: [概率论]3-8:随机变量函数(Functions of a Random Variable) categories: Mathematic Probability keywords: ...

      1. 【概率论】3-9:多随机变量函数(Functions of Two or More Random Variables)
      1. title: [概率论]3-9:多随机变量函数(Functions of Two or More Random Variables) categories: - Mathematic - Probab ...

    1.  
    2. 随机推荐

        1. MySQL5.7导入数据报错ERROR 1067 (42000) at line 1015: Invalid default value for 'service_time'
        1. 解决办法: 修改my.cnf,[mysqld] 下面添加sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_U ...

        1. 自定义Log实现条件编译
        1. 在项目pch中添加以下代码,其中DEBUGXcode项目自带的宏,存在时表示当前为调试状态,否则为发布状态.故当在发布状态时,通过自定义TestLog所使用的NSLog调试信息,都会被预编译替换为空 ...

        1. 移植madplayjz2440【学习笔记】
        1. 平台:jz2440 作者:庄泽彬(欢迎转载,请注明作者) 说明:韦东山一期视频学习笔记 交叉编译工具:arm-linux-gcc (GCC) 3.4.5 PC环境:ubuntu16.04 一.移植ma ...

        1. Jquery简单的选项卡实现
        1. 概述 原来对jQuery用的不是很多,主要就是表单验证这些部分,最近想要更深入的学习jQueryJavaScript编码,就找来了一些视频进行学习,然后就做了这个简单的选项卡示例.视频学习地址见最后 ...

        1. NQueens, NQueens2 N皇后问题,递归回溯
        1. N皇后的规则:任意两个皇后不在同一行,不在同一列,不在同一斜线上. 算法分析:这种问题就用回溯法.深度搜索然后回溯.用一个数组记录每一行皇后的位置,下标代表行,值代表列.对行深度搜索. public ...

        1. Angularjs注入拦截器实现Loading效果
        1. angularjs作为一个全ajax的框架,对于请求,如果页面上不做任何操作的话,在结果烦回来之前,页面是没有任何响应的,不像普通的HTTP请求,会有进度条之类. 什么是拦截器? $httpProvi ...

        1. sql内连接外连接自然连接
        1. 为什么我们要使用内连接和外连接呢?可以从两张或者多张表中找出,我们需要的属性. 这个比较好:http://www.cnblogs.com/youzhangjin/archive/2009/05/22/ ...

        1. Linux find 命令大全
        1. find 含义: 顾名思义,是从来查找满足条件的内容. 从指定目录,递归的查找满足条件的内容. 格式: find [查询目录] [参数] [匹配方式] 文件操作: -name : 查找文件名  ( f ...

        1. 习题-第7Web自动化测试
        1. 一.选择题 1.如果火狐浏览器不在默认安装路径,编写Selenium的设置代码,横线处应该填入(    ), System.setProperty(“webdriver.firefox._______ ...

        1. Ubuntu 配置静态ip的方法
        1. 1. 配置静态ip地址 $sudo vi /etc/network/interfaces 原有内容只有如下两行: auto lo iface lo inet loopback 向末尾追加以下内容: a ...