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
时间: 2024-11-06 03:37:52

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

Java 关键字 速查表

Java 关键字 速查表 访问控制:private 私有的protected 受保护的public 公共的 类.方法和变量修饰符abstract 声明抽象class 类extends 扩允,继承final 终极,不可改变的implements实现interface 接口native 本地new 新,创建static 静态 strictfp 严格,精准synchronized 线程,同步transient 短暂volatile 易失 程序控制语句break 跳出循环continue 继续retur

Markdown 语法速查表

Markdown 语法速查表 1 标题与文字格式 标题 # 这是 H1 <一级标题> ## 这是 H2 <二级标题> ###### 这是 H6 <六级标题> 文字格式 **这是文字粗体格式** *这是文字斜体格式* ~~在文字上添加删除线~~ 2 列表 无序列表 * 项目1 * 项目2 * 项目3 有序列表 1. 项目1 2. 项目2 3. 项目3 * 项目1 * 项目2 3 其它 图片 ![图片名称](http://gitcafe.com/image.png) 链接

GNU Emacs命令速查表

GNU Emacs命令速查表 第一章  Emacs的基本概念 表1-1:Emacs编辑器的主模式 模式 功能 基本模式(fundamental mode) 默认模式,无特殊行为 文本模式(text mode) 书写文字材料(第二章) 邮件模式(mail mode) 书写电子邮件消息(第六章) RMAIL模式(RMAIL mode) 阅读和组织电子邮件(第六章) 只读模式(view mode) 查看文件,但不进行编辑(第五章) shell模式(shell mode) 在Emacs里运行一个UNIX

每个程序员都应该收藏的算法复杂度速查表

算法复杂度这件事 这篇文章覆盖了计算机科学里面常见算法的时间和空间的大 O(Big-O)复杂度.我之前在参加面试前,经常需要花费很多时间从互联网上查找各种搜索和排序算法的优劣,以便我在面试时不会被问住.最近这几年,我面试了几家硅谷的初创企业和一些更大一些的公司,如 Yahoo.eBay.LinkedIn 和 Google,每次我都需要准备这个,我就在问自己,“为什么没有人创建一个漂亮的大 O 速查表呢?”所以,为了节省大家的时间,我就创建了这个,希望你喜欢! — Eric 图例 绝佳 不错 一般

程序员/设计师能用上的 75 份速查表

75 份速查表,由 vikas 收集整理,包括:jQuery.HTML.HTML5.CSS.CSS3.JavaScript.Photoshop .Git.Linux.Java.Perl.PHP.Python.Ruby.Ruby on Rails.Scala.C#.SQLite.C++.C语言.Ubuntu.WordPress.Node.JS.Oracle.NMAP.Mac OS X.Haskell.Unicode.PostgreSQL.Lisp.Matlab 等. 速查表可能是图片,也可能是 P

程序员/设计师能用上的 75 份速查表(转)

75 份速查表,由 vikas 收集整理,包括:jQuery.HTML.HTML5.CSS.CSS3.JavaScript.Photoshop .git.Linux.Java.Perl.PHP.Python.Ruby.Ruby on Rails.Scala.C#.SQLite.C++.C语言.Ubuntu.WordPress.Node.js.Oracle.NMAP.Mac OS X.Haskell.Unicode.PostgreSQL.Lisp.Matlab 等. 速查表可能是图片,也可能是 P

汇编指令速查表

一.数据传输指令───────────────────────────────────────它们在存贮器和寄存器.寄存器和输入输出端口之间传送数据.1. 通用数据传送指令.MOV 传送字或字节.MOVSX 先符号扩展,再传送.MOVZX 先零扩展,再传送.PUSH 把字压入堆栈.POP 把字弹出堆栈.PUSHA 把 AX,CX,DX,BX,SP,BP,SI,DI 依次压入堆栈.POPA 把 DI,SI,BP,SP,BX,DX,CX,AX 依次弹出堆栈.PUSHAD 把 EAX,ECX,EDX,

Git操作手册|命令速查表

这篇文章主要介绍Git分布式版本管理与集中式管理的一些差异,总结下Git常用命令作为日后的速查表,最后介绍Git进阶的一些案例.本文分为以下几个部分: Git与SVN差异 Git常用命令 Git进阶指南 Git与SVN差异 Git的第一个版本是Linux之父Linus Torvalds亲手操刀设计和实现的,Git 基于 DAG 结构 (Directed Acyclic Graph),其运行起来相当的快,它已经是现在的主流. Git 和 SVN 思想最大的差别有四个: 去中心化 直接记录快照,而非

Silverlight 预定义颜色速查表

预定义颜色 可以使用 SolidColorBrush 绘制,它使用预定义纯色.这可以是 Colors 的静态属性 (Property) 名称,也可以是指定为 XAML 属性 (Attribute) 值时直接作为字符串处理的另外一组颜色名称中的一个.有关已命名颜色表以及如何在代码中指定已命名颜色的说明,请参见 Color 或 SolidColorBrush.若要使用预定义颜色,可以利用已命名颜色约定将 XAML 属性 (Attribute) 语法用于任何采用 Brush 的属性 (Property