Java, C#, Swift语法对比速查表
Java 8 | C# 6 | Swift | |
变量 | 类型 变量名; | 类型 变量名; | var 变量名 : 类型; |
变量(类型推断) | N/A | var 变量名=初值; | var 变量名=初值; |
常量 | final 类型 常量名=初值; | readonly 类型 常量名=初值; | let 常量名 : 类型=初值; |
基本类型 |
int short long byte |
int short long byte |
Int32 Int16 Int64 Int8 |
字符串 | 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<键类型, 值类型>() { |
var 变量名= new Dictionary<键类型, 值类型>() |
var 变量名 : Dictionary<键类型, 值类型>= [ |
字典下标 | 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 参数类型 形参){} |
func 函数名(inout 形参 : 参数类型) -> 返回类型{} |
调用传出参数 | N/A | 实参 | &实参 |
函数类型 | N/A,用单方法接口替代 | Action和Func系列泛型类 | (参数类型1, 参数类型2) –> 返回类型 |
闭包 |
(参数类型 形参) -> 表达式 () –> { |
(参数类型 形参) => 表达式 () => |
{ (形参: 参数类型) –> 返回类型 in 表达式} { () –>() in |
枚举 |
enum 类型名 { |
enum 类型名 |
enum 类型名 { |
结构(值类型) | N/A | struct 结构名 { 成员 } | struct 结构名 { 成员 } |
类(引用类型) | class 类名 { 成员 } | class 类名 { 成员 } | class 类名 { 成员 } |
创建对象实例 | new 类名(实参1, 实参2) | new 类或结构名(实参1, 实参2) | 类或结构名(外参名1 : 实参1, 外参名2 : 实参2) |
静态成员 | static | static | 结构和枚举static,类和接口class |
访问级别 |
public,公有 |
public,公有 |
public,公有 |
存储属性 | N/A,get set前缀方法命名约定 | 类型 属性名 { get; set; }=初始值; | var 属性名 : 类型=初始值; |
计算属性 | N/A,get set前缀方法命名约定 |
类型 属性名 |
var 属性名 : 类型 { |
索引器(下标) | N/A |
返回类型 this[参数类型 形参] { |
subscript(形参 : 参数类型) –> 返回类型 { |
构造器 | 类名(参数类型 形参){} | 类名(参数类型 形参){} | init(形参 : 参数类型){} |
自身实例 | this | this | self |
调用其它构造器 |
类名() { |
类名() : this(实参) |
init() { |
继承 | class 派生类 extends 基类 { 成员 } | class 派生类 : 基类 { 成员 } | class 派生类 : 基类 { 成员 } |
调用基类构造器 |
派生类名(参数类型 参数) { |
派生类名(参数类型 参数) : base(参数) |
init(参数 : 参数类型) { |
虚函数 | 默认都可覆盖,不可覆盖标final | 标virtual可覆盖 | 默认都可覆盖, 不可覆盖标@final |
密封类 | final | sealed | @final |
覆盖(override) | 不加修饰,可加@Override | override | override |
调用基类方法 | super.方法(); | base.方法(); | super.方法(); |
类型检查 | 基类实例 instanceof 派生类型 | 基类实例 is 派生类型 | 基类实例 is 派生类型 |
向下转型 |
(派生类型)基类实例 |
(派生类型)基类实例 |
基类实例 as 派生类型 |
接口 | interface | interface | protocol |
实现接口 | class 类 implement 接口 { 成员 } | class 类 : 接口 { 成员 } | class 类 : 接口 { 成员 } |
抽象类 | abstract | abstract | N/A |
扩展 | 接口的默认方法 | 扩展方法 | extension |
命名空间 | package | namespace | 按module |
转载于:https://www.cnblogs.com/clockdotnet/p/4263922.html
Java, C#, Swift语法对比速查表相关推荐
- js学习笔记(十二)——语法速查表
JS 语法速查表 转载编译自链接 基础 pdf下载 注:cheatsheet大集合 1. jsES2015的特性总结 这个链接还有一系列的手册可以查阅; 2. js基本函数 这个链接包含一系列语言.包 ...
- markdown中快速插入Emoji表情包语法速查表!!!
markdown中快速插入Emoji表情包语法速查表!!!
- Markdown Emoji表情语法速查表
文章目录 emoji-cheat-sheet Table of Contents People Nature Objects Places Symbols Uncategorized 本篇教程首次发布 ...
- JAVA修饰符速查表
JAVA修饰符速查表
- Python开发资源速查表
Python开发资源速查表 Python实现算法和设计模式 algorithms - Python的一个算法模块. PyPattyrn - 一个用于实现常见设计模式的简单而有效的库. python-p ...
- Sqlmap速查表/功能移植/Python批量检测SQL注入
title: Sqlmap速查表与Python进行功能移植 copyright: true top: 0 date: 2021-02-27 11:59:00 tags: [扫描注入,注入,sqlmap ...
- 学习GNU Emacs命令速查表(三)
博客地址:http://blog.csdn.net/shuxiao9058 原始作者:季亚 第八章简章的文字排版和特效编辑 表8-1:制表位命令速查表 键盘操作 命令名称 动作 (无) edit-ta ...
- 简述sed、grep和parted的速查表
下载 sed.grep和parted的速查表来整合新的流程到你的工作中. Linux 因其命令闻名,部分原因是 Linux 执行的几乎所有操作都可以从终端调用:另一部分原因是 Linux 是一个高度模 ...
- 超全Python速查表登上GitHub热榜,标星4600+!(附链接)
本文经AI新媒体量子位授权转载,转载请联系出处. 本文多资源,建议阅读5分钟. 本文为你分享一份超全Python速查表. 哪里不会,抄查哪里. GitHub上出现一份对Python用户非常友好的资源: ...
最新文章
- java中JUnit单元测试的使用方法
- 原理分析之三:初始化(配置文件读取和解析)
- 汇编语言--int指令
- Android apk签名方法
- Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart)
- vue-resource.js的get和post的正确用法
- __clone class php_「PHP 技巧」 不要直接克隆对象,请使用深拷贝
- python线程暂停_python3线程启动与停止
- MongoDB几个完整的库表设计实例
- 设计模式学习(三):创建型模式【转】
- mapxtreme相关
- 初学算法该直接上《算法导论》 还是先看完 《算法 第四版》?
- 黑盒(功能)测试基本方法
- Linux下ftp搭建
- sinx泰勒展开_求极限:泰勒公式应展开到第几阶?
- Asp.Net Core3.1-集成Hangfire
- C/C++ | 23-12 用指针的方法,将字符串“ABCD1234efgh”前后对调显示
- 关于罗永浩将要进军AR/VRMR领域,你又有什么评价呢?
- c语言 if自动机 while自动机 bool自动机 算术自动机
- 大秦:开局签到满级剑术天赋(二)
热门文章
- [NodeJs] 你有使用过npx吗?它主要解决什么问题?
- [react] 说说你对声明式编程的理解?
- 前端学习(3292):function
- [vue] SSR解决了什么问题?有做过SSR吗?你是怎么做的?
- [css] 如何使用CSS绘制一个汉堡式菜单
- 前端学习(2739):重读vue电商网站49之第三方库使用CDN
- “约见”面试官系列之常见面试题第九篇vue实现双向绑定原理(建议收藏)
- 前端学习(1816):前端面试题之作用域和值类型传递的参数1
- shiro学习(22):动态添加验证规则2
- Java面试题19 牛客下面有关java的引用类型,说法正确的有?