原文: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前缀方法命名约定 类型 属性名 { get; set; }=初始值; 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(外参名 : 参数);
}

虚函数 默认都可覆盖,不可覆盖标final 标virtual可覆盖 默认都可覆盖, 不可覆盖标@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

Java, C#, Swift语法对比速查表的更多相关文章

  1. 【译】Swift 字符串速查表

    [译]Swift 字符串速查表 2015-12-18 10:32 编辑: suiling 分类:Swift 来源:CocoaChina翻译活动 10 5585 Swift字符串 招聘信息: iOS高级 ...

  2. Markdown 语法速查表

      Markdown 语法速查表 1 标题与文字格式 标题 # 这是 H1 <一级标题> ## 这是 H2 <二级标题> ###### 这是 H6 <六级标题> 文 ...

  3. IE各版本CSS Hack(兼容性处理)语法速查表

    为了兼容IE各个版本,需要在CSS中添加额外的代码,比如以前常用的_width.之所以工作,是因为浏览器会忽略不能解析的样式规则,因此举个例子来说,把_width写在width下面,对于非IE浏览器会 ...

  4. GNU Emacs命令速查表

    GNU Emacs命令速查表 第一章  Emacs的基本概念 表1-1:Emacs编辑器的主模式 模式 功能 基本模式(fundamental mode) 默认模式,无特殊行为 文本模式(text m ...

  5. OpenStack 命令行速查表

    OpenStack 命令行速查表   updated: 2017-07-18 08:53 Contents 认证 (keystone) 镜像(glance) 计算 (nova) 实例的暂停.挂起.停止 ...

  6. Tools - 速查表与备忘单(Cheat Sheet)

    Cheat Sheets Rico's cheatsheets Cheat-Sheets.org Python Python Cheat sheet Python Programming Cheat ...

  7. 【转】Vim速查表-帮你提高N倍效率

    Vim速查表-帮你提高N倍效率 转自:https://www.jianshu.com/p/6aa2e0e39f99 去年上半年开始全面使用linux进行开发和娱乐了,现在已经回不去windows了. ...

  8. vim基本命令速查表

    来源:https://github.com/skywind3000/awesome-cheatsheets/blob/master/editors/vim.txt ################## ...

  9. bash基本命令速查表

    来源:https://github.com/skywind3000/awesome-cheatsheets/blob/master/languages/bash.sh ################ ...

随机推荐

  1. ISO14443 ISO15693 ISO18000

    [提要]射频标签的通信标准是标签芯片设计的依据,目前国际上与RFID相关的通信标准主要有:ISO/IEC 18000标准(包括7个部分,涉及125KHz, 13.56MHz, 433MHz, 860- ...

  2. MultiView空间例子

    CSS代码: body { font-size:11pt; font-family:宋体; } .mainTitle { font-size:11pt; font-weight:bold; font- ...

  3. FormView分页显示数据的例子

    %@ Page Language="C#" AutoEventWireup="true" CodeBehind="FormView控件.aspx.cs ...

  4. perl 第十四章 Perl5的包和模块

    第十四章 Perl5的包和模块 by flamephoenix 一.require函数  1.require函数和子程序库  2.用require指定Perl版本二.包  1.包的定义  2.在包间切 ...

  5. perl5 第十三章 Perl的面向对象编程

    第十三章 Perl的面向对象编程 by flamephoenix 一.模块简介二.Perl中的类三.创建类四.构造函数 实例变量 五.方法六.方法的输出七.方法的调用八.重载九.析构函数十.继承十一. ...

  6. HDU1284钱币兑换问题( 母函数打表)

    题意:在一个国家仅有1分,2分,3分硬币,将钱N兑换成硬币有很多种兑法.请你编程序计算出共有多少种兑法. 原题http://acm.hdu.edu.cn/showproblem.php?pid=128 ...

  7. [置顶] 程序员必知(二):位图(bitmap)

    位图是什么? 位图就是数组,一般来说是bit型的数组,具有快速定位某个值的功能,这种思想有很广泛的应用,比如下边两题: 1 找出一个不在5TB个整数中存在的数 假设整数是32位的,总共有4GB个数,我 ...

  8. Winform 绘制圆形的图片

    string filename = "icon.png";//如果不是png类型,须转换 System.Drawing.Bitmap bitmap = new System.Dra ...

  9. 转:jQuery事件绑定.on()简要概述及应用

    前几天在看<jquery基础教程>,看到事件委托的时候,关于live()方法讲的不是很详细,就去搜了一下关于live()和delegate()的. 然后在一处看到live()已经被移除了, ...

  10. spring Annotation 笔记2.1

    使用注解替代xml 在前几章的笔记基础上添加使用注解的形式 1.配置applicationContext 添加context schema <?xml version="1.0&quo ...