【Swift】 - 函数(Functions)总结 - 比较 与 C# 的异同
1.0 函数的定义与调用( Defining and Calling Functions )
习惯了C#了语法,看到下面的这样定义输入参数实在感到非常别扭,func 有点 Javascript的感觉,还算习惯。函数调用与其他语言没什么区别
- //有输入参数和返回值的函数
- //输入参数为名name,数据类型为String
- //返回值 String类型
- func SayHello(name:String) ->String {
- return "Hello,"+name;
- }
- //调用函数
- SayHello("_luo")
2.0 函数参数与返回值 ( Function Parameters and Return Values )
- // 2.1 多重输入参数 ( Multiple Input Parameters )
- func HalfOpenRangeLength(start:Int,end:Int) ->Int{
- return end - start;
- }
- // 2.2 无参函数 ( Functions Without Parameters )
- func SayHelloWorld()->String{
- return "Hello World";
- }
- // 2.3 无返回值函数 ( Functions Without Return Values )
- func SayGoodbye(name:String){
- println("Goodbye,\(name)");
- }
- // 2.4 多重返回值函数 (Functions with Multiple Return Values )
- //你可以用元组(tuple)类型让多个值作为一个复合值从函数中返回。
- //计算一个字符串中元音,辅音和其他字母的个数
- func Count(str:String)->(vowels:Int,consonants:Int,others:Int){
- var vowels=0,consonants=0,others=0;
- for item in str {
- switch String(item).lowercaseString{
- case "a","e","i","o","u":vowels++;
- case "b", "c", "d", "f", "g", "h", "j", "k", "l", "m",
- "n", "p", "q", "r", "s", "t", "v", "w", "x", "y", "z":consonants++;
- default:others++; }
- }
- return (vowels,consonants,others);
- }
3.0 函数参数名称 ( Function Parameter Names )
上面的函数中的参数名仅在函数体中使用,不能这函数调用时使用,这种类型的参数名称为[局部参数名]。
与C#相比,Swift 有外部参数名。
外部参数名,是为了在调用函数时,可以指出各个实参的用途是什么。
(个人觉得实在是太不人性化了,为了知道这个参数的意义还要弄个外部参数名。C#就比较好了 在vs,只要写了注释,调用的时候就会显示各个参数的用途,顿时感觉到vs的强大)
- // 3.1 外部参数名 ( External Parameter Names )
- //外部参数名写在局部参数名之前,用空格分隔
- //如果你提供了外部参数名,那么函数在被调用时,必须使用外部参数名。
- //----没有外部参数名的写法
【Swift】 - 函数(Functions)总结 - 比较 与 C# 的异同的更多相关文章
asp.net Razor 视图具有.cshtml后缀,可以轻松的实现c#代码和html标签的切换,大大提升了我们的开发效率.但是Razor语法还是有一些棉花糖值得我们了解一下,可以更加强劲的提升我们 ...
在Swift语言中使用Map.Filter.Reduce对Array.Dictionary等集合类型(collection type)进行操作可能对一部分人来说还不是那么的习惯.对于没有接触过函数式编 ...
在Apple官方的<Using Swift with Cocoa and Objectgive-C>一书中详细地介绍了如何在Objective-C中使用Swift的类以及如何在Swift中 ...
1: 函数形式: Swift函数以关键字func 标示.返回类型->后写明.如果没有返回类型可以省去.多个参数用,分割.其中参数名字在前:类型描述 func GetName(strName:St ...
import Foundation //swift函数的使用 func sayHello(name userName:String ,age:Int)->String{ return " ...
asp.net Razor 视图具有.cshtml后缀,可以轻松的实现c#代码和html标签的切换,大大提升了我们的开发效率.但是Razor语法还是有一些棉花糖值得我们了解一下,可以更加强劲的提升我们 ...
本文转自:http://www.cnblogs.com/jiagoushi/p/3904995.html asp.net Razor 视图具有.cshtml后缀,可以轻松的实现c#代码和html标签的 ...
title: [概率论]3-8:随机变量函数(Functions of a Random Variable) categories: Mathematic Probability keywords: ...
title: [概率论]3-9:多随机变量函数(Functions of Two or More Random Variables) categories: - Mathematic - Probab ...
随机推荐
解决办法: 修改my.cnf,[mysqld] 下面添加sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_U ...
在项目pch中添加以下代码,其中DEBUG为Xcode项目自带的宏,存在时表示当前为调试状态,否则为发布状态.故当在发布状态时,通过自定义TestLog所使用的NSLog调试信息,都会被预编译替换为空 ...
平台:jz2440 作者:庄泽彬(欢迎转载,请注明作者) 说明:韦东山一期视频学习笔记 交叉编译工具:arm-linux-gcc (GCC) 3.4.5 PC环境:ubuntu16.04 一.移植ma ...
概述 原来对jQuery用的不是很多,主要就是表单验证这些部分,最近想要更深入的学习jQuery和JavaScript编码,就找来了一些视频进行学习,然后就做了这个简单的选项卡示例.视频学习地址见最后 ...
N皇后的规则:任意两个皇后不在同一行,不在同一列,不在同一斜线上. 算法分析:这种问题就用回溯法.深度搜索然后回溯.用一个数组记录每一行皇后的位置,下标代表行,值代表列.对行深度搜索. public ...
angularjs作为一个全ajax的框架,对于请求,如果页面上不做任何操作的话,在结果烦回来之前,页面是没有任何响应的,不像普通的HTTP请求,会有进度条之类. 什么是拦截器? $httpProvi ...
为什么我们要使用内连接和外连接呢?可以从两张或者多张表中找出,我们需要的属性. 这个比较好:http://www.cnblogs.com/youzhangjin/archive/2009/05/22/ ...
find 含义: 顾名思义,是从来查找满足条件的内容. 从指定目录,递归的查找满足条件的内容. 格式: find [查询目录] [参数] [匹配方式] 文件操作: -name : 查找文件名 ( f ...
一.选择题 1.如果火狐浏览器不在默认安装路径,编写Selenium的设置代码,横线处应该填入( ), System.setProperty(“webdriver.firefox._______ ...
1. 配置静态ip地址 $sudo vi /etc/network/interfaces 原有内容只有如下两行: auto lo iface lo inet loopback 向末尾追加以下内容: a ...