Swift与C#的基础语法比较
Posted 路过秋天
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Swift与C#的基础语法比较相关的知识,希望对你有一定的参考价值。
背景:
这两天不小心看了一下Swift的基础语法,感觉既然看了,还是写一下笔记,留个痕迹~
总体而言,感觉Swift是一种前后端多种语言混合的产物~~~
做为一名.NET阵营人士,少少多多总喜欢通过对比来加深认识。
所以做了一个简单的比较列表。
下面是基础语法的比较:
|
Swift |
C#(4.0以上) |
常量定义: |
let name=”cyq.data” |
Const name=”cyq.data”; |
变量定义: 指定类型: |
var name=”cyq.data” var name:String=”cyq” |
var name=”cyq.data”; string name=”cyq”; |
类型转换: |
var i=3; var s:String=String(i) var s2:Strng=”\(i)” |
var i=3; var s=i.ToString(); var s2=Convert.ToString(i); var s3=(string)I; |
数组定义: |
var lis=[1,3] |
int[] list={1,2}; |
数组遍历: |
for item in list { } |
foreach (var item in list){ } |
字典定义: |
var dic=[“a”:”v1”,”b”:”v2”] |
var dic = new Dictionary<string, string>(); dic.Add("a","v1"); dic.Add("b", "v2"); |
字典遍历: |
for (key,value) in dic { var k=key var v=value } |
foreach (var item in dic) { var k= item.Key; var v = item.Value; } |
区间范围: |
for I in 0…200 { } |
for (int i = 0; i <= 200; i++){ } |
函数定义: |
func getName(a:Int)->Bool |
bool GetName(int a) |
可变参数: |
func getName(a:Int…) ->Bool { } |
bool GetName(params int[] items){ } |
属性定义: |
var name:String{ get{} set{} } |
string Name { get; set; } |
修饰符: |
public internal private 意思和C#的一致, 默认也是:internal 但没有Protect |
public internal private protect |
构造函数: |
class MyClass{ init() //都是这个名称 } |
class MyClass{ MyClass () //和类同名 } |
可选类型: 可空类型 |
var i:Int?=3 取值:i! |
int? i=3; 取值:i.Value |
(基)类参数: |
self、super |
this、base |
枚举定义: |
enum ABCF:Int { case A=1,B,C case F } enum ABCF{ case A case getName(Int) } 好变态~~~ |
enum ABCF{ A, B=1, C } 只有数字常量,没有字符或方法 |
扩展属性: 扩展方法: |
extenstion Int{ var i func toString() } |
public static class XXXx { public static string ToString(this int a) { return a.ToString(); } } |
协议: 接口: |
protocol MAction { } |
public interface IMAction { } |
总结:
Swift 由于是前后端混合的语言,因此,有大部分的语法是一致的:
包括运算符、分支、循环、类的继承等。
还有匿名函数lamda表达式也极相似。
Swift连闭包都有了,也可知道javascript的分量也不轻。
涉入太浅,也只能吐这么点知识了,哈~~
以上是关于Swift与C#的基础语法比较的主要内容,如果未能解决你的问题,请参考以下文章