Java, C#, Swift语法对比速查表


Java 8 C# 6 Swift
变量 类型 变量名; 类型 变量名; var 变量名 : 类型;
变量(类型推断) N/A var 变量名=初值; var 变量名=初值;
常量 final 类型 常量名=初值; readonly 类型 常量名=初值; let 常量名 : 类型=初值;
基本类型

int short long byte 
double float 
boolean 
char

int short long byte 
double float 
bool 
char

Int32 Int16 Int64 Int8 
Double Float 
Bool 
Character

字符串 String 变量名=""; string 变量名=""; let 变量名 : String="";
字符串嵌入值 N/A "\{表达式}" "\(表达式)"
可变字符串 StringBuilder StringBuilder var 变量名 : String;
定常数组 类型[] 变量名={元素1,元素2}; 类型[] 变量名={元素1,元素2}; let 变量名 : 类型名[] = [元素1, 元素2];
变长数组(列表) ArrayList<类型> List<类型> var 变量名=类型名[]();
追加元素 add Add append
遍历 for (类型 变量 : 集合) foreach (类型 变量 in 集合) for (变量 in 集合)
字典 TreeMap<键类型, 值类型> Dictionary<键类型, 值类型> Dictionary<键类型, 值类型>
字典初始化

TreeMap<键类型, 值类型> 变量名 = new TreeMap<键类型, 值类型>() { 
    { 
        put(键1, 值1);  
        put(键2, 值2);  
    } 
};

var 变量名= new Dictionary<键类型, 值类型>() 

    [键1] = 值1, 
    [键2] = 值2, 
};

var 变量名 : Dictionary<键类型, 值类型>= [ 
    键1 : 值1, 
    键2 : 值2 
];

字典下标 N/A(使用get方法) 变量名[键] 变量名[键]
定义函数(方法) 返回类型 方法名(参数类型1 形参1, 参数类型2 形参2){} 返回类型 方法名(参数类型1 形参1, 参数类型2 形参2=默认值){} func 函数名(形参1 : 参数类型1, 外参名 形参2 : 参数类型2=默认值) -> 返回类型{}
调用函数(方法) 方法名(实参1, 实参2); 方法名(实参1, 实参2); 函数名(实参1, 外参名 : 实参2);
可变参数 返回类型 方法名(参数类型… 形参){} 返回类型 方法名(params 参数类型[] 形参){} func 函数名(形参 : 参数类型...) -> 返回类型{}
传出参数 N/A,包在对象里面

返回类型 方法名(ref 参数类型 形参){} 
返回类型 方法名(out 参数类型 形参){}

func 函数名(inout 形参 : 参数类型) -> 返回类型{}
调用传出参数 N/A 实参 &实参
函数类型 N/A,用单方法接口替代 Action和Func系列泛型类 (参数类型1, 参数类型2) –> 返回类型
闭包

(参数类型 形参) -> 表达式


() –> { 
   多行语句 
}

(参数类型 形参) => 表达式


() => 

   多行语句 
}

{ (形参: 参数类型) –> 返回类型in 表达式}


{ () –>() in  
   多行语句 
}

枚举

enum 类型名 { 
   枚举值1(值1), 枚举值2(值2), 枚举值3(值3); 
}

enum 类型名 

   枚举值1=值1, 
   枚举值2=值2, 
   枚举值3=值3 
}

enum 类型名 { 
   case 枚举值1=值1, 枚举值2=值2, 枚举值3=值3 
}

结构(值类型) N/A struct 结构名 { 成员 } struct 结构名 { 成员 }
类(引用类型) class 类名 { 成员 } class 类名 { 成员 } class 类名 { 成员 }
创建对象实例 new 类名(实参1, 实参2) new 类或结构名(实参1, 实参2) 类或结构名(外参名1 : 实参1, 外参名2 : 实参2)
静态成员 static static 结构和枚举static,类和接口class
访问级别

public,公有 
protected,保护(包内和子类可访问) 
无修饰符,默认(包内可访问) 
private,私有 

public,公有 
protected,保护(子类可访问)
internal,内部(程序集内可访问) 
protected internal,内部保护(程序集内的子类可访问) 
private,私有

public,公有 
internal,内部(模块内可访问) 
private,私有

存储属性 N/A,get set前缀方法命名约定 类型 属性名 { getset; }=初始值; var 属性名 : 类型=初始值;
计算属性 N/A,get set前缀方法命名约定

类型 属性名 

   get 
   { 
   } 
   set 
   { //形参为value 
   } 
}

var 属性名 : 类型 { 
   get { 
   } 
   set(形参) { //如不写形参名,默认为newValue 
   } 
}

索引器(下标) N/A

返回类型 this[参数类型 形参]


   get 
   { 
   } 
   set 
   { //形参为value 
   } 
}

subscript(形参 : 参数类型) –> 返回类型 { 
 get { 

 set { //形参为newValue 

}

构造器 类名(参数类型 形参){} 类名(参数类型 形参){} init(形参 : 参数类型){}
自身实例 this this self
调用其它构造器

类名() { 
 this(实参); 
}

类名() : this(实参) 

}

init() { 
 self.init(外参名 : 实参); 
}

继承 class 派生类 extends 基类 { 成员 } class 派生类 : 基类 { 成员 } class 派生类 : 基类 { 成员 }
调用基类构造器

派生类名(参数类型 参数) { 
 super(参数); 
}

派生类名(参数类型 参数) :base(参数) 

}

init(参数 : 参数类型) { 
 super.init(外参名 : 参数); 
}

虚函数 默认都可覆盖,不可覆盖标finalvirtual可覆盖 默认都可覆盖, 不可覆盖标@final
密封类 final sealed @final
覆盖(override) 不加修饰,可加@Override override override
调用基类方法 super.方法(); base.方法(); super.方法();
类型检查 基类实例 instanceof 派生类型 基类实例 is 派生类型 基类实例 is 派生类型
向下转型

(派生类型)基类实例 

(派生类型)基类实例 
基类实例 as 派生类型

基类实例 as 派生类型 
基类实例 as? 派生类型

接口 interface interface protocol
实现接口 class 类 implement 接口 { 成员 } class 类 : 接口 { 成员 } class 类 : 接口 { 成员 }
抽象类 abstract abstract N/A
扩展 接口的默认方法 扩展方法 extension
命名空间 package namespace 按module


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值