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

 Java 8C# 6Swift
变量类型 变量名;类型 变量名;var 变量名 : 类型;
变量(类型推断)N/Avar 变量名=初值;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"\{表达式}""\(表达式)"
可变字符串StringBuilderStringBuildervar 变量名 : String;
定常数组类型[] 变量名={元素1,元素2};类型[] 变量名={元素1,元素2};let 变量名 : 类型名[] = [元素1, 元素2];
变长数组(列表)ArrayList<类型>List<类型>var 变量名=类型名[]();
追加元素addAddappend
遍历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/Astruct 结构名 { 成员 }struct 结构名 { 成员 }
类(引用类型)class 类名 { 成员 }class 类名 { 成员 }class 类名 { 成员 }
创建对象实例new 类名(实参1, 实参2)new 类或结构名(实参1, 实参2)类或结构名(外参名1 : 实参1, 外参名2 : 实参2)
静态成员staticstatic结构和枚举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(形参 : 参数类型){}
自身实例thisthisself
调用其它构造器

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

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

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

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

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

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

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

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

(派生类型)基类实例

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

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

接口interfaceinterfaceprotocol
实现接口classimplement 接口 { 成员 }class 类 : 接口 { 成员 }class 类 : 接口 { 成员 }
抽象类abstractabstractN/A
扩展接口的默认方法扩展方法extension
命名空间packagenamespace按module

转载于:https://www.cnblogs.com/clockdotnet/p/4263922.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/420253.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

0网卡开启_中标麒麟Linux v7系统下设置双网卡bond或team绑定详细过程

中标麒麟Linux v7系统下设置双网卡bond或team绑定详细过程。所谓bond&#xff0c;就是把多个物理网卡绑定成一个逻辑网卡&#xff0c;使用同一个IP工作&#xff0c;在增加带宽的同时也可以提高冗余性&#xff0c;一般使用较多的就是来提高冗余&#xff0c;分别和不同交换机相连…

前端学习(1350):用户的增删改查操作7增删改查

demo25.js //创建http连接 const http require(http); //创建服务器 const app http.createServer(); //第三方模块导入 /* const mongoose require(mongoose); */ //获取连接 const url require(url); // const querystring require(querystring);require(./demo26.js);…

基于aop的日志记录

aop实现日志记录记录工具切面logback配置测试记录工具 目标&#xff1a; 统计rest接口请求参数&#xff0c;请求地址&#xff0c;请求IP&#xff0c;响应数据&#xff0c;响应时间。方便后续问题排查&#xff0c;以及性能的总体分析。 基于springboot会使用面向切面编程基于l…

xss防御补丁_Discuz论坛最新dom xss漏洞的解决方法

无忧主机小编在日常处理客户网站问题时&#xff0c;经常遇到网站因为程序漏洞出现的问题。网站安全的发展&#xff0c;才能使得管理者放心营运。但是比较无奈的是&#xff0c;漏洞问题貌似屡见不鲜&#xff0c;就算再强大、再常用的程序&#xff0c;都会有诸如漏洞的问题&#…

前端学习(1351)模板引擎

const template require(art-template); //绝对路径 模板中显示的数据 const path require(path); const views path.join(__dirname, index.art); const html template(views, {name: 张三,age: 20 }); console.log(html); index.art <!DOCTYPE html> <html la…

内存数据库和关系数据库之间的数据同步原理

关系数据库到内存数据库同步这部分数据同步采用增量表的方式&#xff0c;系统新增或更新的数据将生成到关系数据库的增量表中&#xff0c;程序先到这些增量表中查询数据。如果能在这些增量表中查到数据就把这些数据更新到内存数据库对应表中&#xff0c;如果查不到&#xff0c;…

java 图片压缩100k_java实现图片压缩

简介我们在项目中经常会遇到图片上传的需求&#xff0c;如商品图片&#xff0c;但图片太大的话&#xff0c;在客户端加载太慢影响用户体验&#xff0c;所有一般会将图片进行压缩。实现原图添加依赖net.coobirdthumbnailator0.4.8按质量压缩import java.io.File;import java.io.…

前端学习(1352)模板语法

demo27.js const template require(art-template); //绝对路径 模板中显示的数据 const path require(path); const views path.join(__dirname, 01.art); const html template(views, {name: 张三,age: 20,content: <h1>我是歌谣</h1> }); console.log(html)…

marker 头像 高德地图_高德地图头像怎么更换 高德地图更换头像图文教程

相信绝大部分人都知道微信头像以及QQ头像怎么更换&#xff0c;而设置头像也是很多人喜欢做的一件事情。而对于经常使用高德地图的用户来说&#xff0c;头像该怎么设置呢&#xff1f;对于这群用户&#xff0c;下面百事网小编为大家带来详细的高德地图更换头像图文教程&#xff0…

UVA10763:Foreign ExchangeUVA10340: All in All(水题)

10763:水题不解释直接贴代码。 #include <iostream> #include <string.h> #include <stdio.h> #include <algorithm> #include <math.h> #include <queue> #define eps 1e-9 typedef long long ll; using namespace std; int n; int d[500…

项目经验BigDecimal

BigDeciaml1. BigDecimal1. BigDecimal 我们知道&#xff0c;关于金钱相关的计算&#xff0c;都用BigDeciaml数据类型, 来表示金额。所有关于金额的项目中不能缺少它的使用。 而我今天说说用这个类型&#xff0c;踩到的坑。 金额比较问题 带精度不适用equals比较。使用compar…

前端学习(1353)模板语法条件判断

const template require(art-template); //绝对路径 模板中显示的数据 const path require(path); const views path.join(__dirname, 02.art); const html template(views, {name: 张三,age: 20,/* content: <h1>我是歌谣</h1> */ }); console.log(html); 0…

MySql 缓存查询原理与缓存监控 和 索引监控

MySql缓存查询原理与缓存监控 And 索引监控 by:授客 QQ&#xff1a;1033553122 查询缓存 1.查询缓存操作原理 mysql执行查询语句之前&#xff0c;把查询语句同查询缓存中的语句进行比较&#xff0c;且是按字节比较&#xff0c;仅完全一致才被认为相同。如下&#xff0c;这两…

python pandas 数据分析 DataFrame

二维组转表 import pandas as pdarr [[google, 100], [amazon, 99], [github, 233], [microsoft, 88]]df pd.DataFrame(dataarr, columns[Site, Age]) # 二元组转成表&#xff0c; 列为 Site 和 Age. print(df)col df[Age]# 获取Age列 print(col)# 获取Age > 100的所有行…

前端学习(1354):集合关联

const mongoose require(mongoose); mongoose.connect(mongodb://localhost/playground, { useUnifiedTopology: true }).then(() > console.log(数据库连接成功)).catch(err > console.log(err, 数据库连接失败)) const userSchema new mongoose.Schema({name: {type:…

ati jti jwt 和_一文搞懂JWT

Django REST framework JWT一、JWT简介二、JWT 组成headersignature三.使用手动生成jwt前端保存jwt一、JWT简介JWT(Json Web Token) 是一个开放标准(RFC 7519)&#xff0c;它定义了一种用于简洁&#xff0c;自包含的用于通信双方之间以 JSON 对象的形式安全传递信息的方法。JWT…

[禅悟人生]心平气和, 慢慢修行

有一个人问投子大同禅师&#xff1a;“一个没有眼晴的人&#xff0c;走路时应该怎样选择方向呢&#xff1f;” 禅师回答说&#xff1a;“他可以朝着四面八方行走&#xff0c;周围都会留下他的脚印。” 那人又问&#xff1a;“既然他都没有眼睛&#xff0c;那么他的脚印怎么会遍…

前端学习(1355)模板语法循环

const template require(art-template); //绝对路径 模板中显示的数据 const path require(path); const views path.join(__dirname, 03.art); const html template(views, {users: [{name: geyao,age: 20,sex: 男}, {name: xiao,age: 20,sex: 男}, {name: hau,age: 20,se…

c++检测ip是否匹配子网掩码_网络工程师从入门到精通通俗易懂系列 | ARP和IP这篇文章讲的相当详细了,这么基础的知识往往也是最容易遗忘的!...

网络层负责将报文从源送到目的包括TCP建立连接&#xff0c;也需要依靠网络层&#xff0c;来将这个连接请求&#xff0c;传递到对方。为设备提供逻辑地址&#xff0c;也就是IP地址主流是IPV4地址IPV4地址&#xff0c;为32位二进制数&#xff0c;长度4个字节&#xff0c;1字节等于…

复合索引字段的排序对搜素的影响

索引是对数据库大数据的查询优化的一种有效的手段&#xff0c;索引又可分为唯一索引和复合索引 单一索引是指索引列为一列的情况&#xff0c;即新建索引的语句只实施在一列上面。 用户可以在多个列上建立索引&#xff0c;这种索引叫做复合索引(组合索引)。复合索引的创建方法与…