前言
在这几种编程语言中,可以大概的分成两类,强类型语言与弱类型语言。强类型语言指的是在声明变量及函数参数时,需要指定某个数据类型。弱类型语言则是相反,在程序执行该语句时才去判断该变量(常量)的类型,弱类型语言又称解释型语言,在程序运行时才去执行该语句,无需所有代码编译成目标代码(机器语言)后才执行。
指针
高级语言发展至今为了让开发者更加简单及快速的开发,已经渐渐的把指针这个概念淡淡弱化,在这几个语言中目前只有OC存在着指针的概念,因为OC在设计之初就是为了在C语言上面添加面向对象思想而诞生的。但了解指针能够更好的清楚数据结构及算法等概念,以达到更好的编程思想及有效的设计逻辑。
废话不多少,马上就来
我们会从常量,变量,运算符,流控制目的是为了总结这几种语言在语法上的区别,巩固现在已学的知识。
变量 常量
在例子中午会用int等基本数据类型与objcet(对象)类型来对比这两种类型直接的差异
//常量 变量
#Swift
var a = "str" ;
let b = 1 ;
#Objective-C (OC)
NSString* a = @"str";
int const b = 1 ;
#Java
String a = "str";
final int b = 1;
#Python
a = "str" ;
B = 1 ;
#JavaScript(ES6)
var a = "str";
let b = "str";
const c = 1
编译型语言swift,OC,Java中,比较特别的是在swift中,当该变量(常量)声明的那一刻系统就会根据值的类型去指定变量(常量)的类型,并不是swift语言是弱类型语言。
在解释性语言中Python,JavaScript中,稍有区别的是,Python并没有常量这个概念,进过百度了一番后常量通常会用大写字母来表示(需考究)。JavaScript在ES6中声明变量(常量)有let字段,var变量,const常量,let字段声明的是在该代码块中的变量,let的作用域只在于该代码块中。
函数
//函数
#Swift
func a(num:int) => int{
return num ++
}
#Objective-C (OC)
-(int)a:(int)num {
return num++;
}
#Java
public int a(int num) {
return num++;
}
#Python
def a(num) :
return num++;
#JavaScript(ES6)
function a (num){
return num++;
}
声明函数语法除了OC外大概相同,须注意Swift用func ,Python用def,JavaScript用function.
总结:在编译型语言中声明变量(常量)中,需要指定该类型。解释型语言无需声明类型
1.OC:
在基本数据类型int float double 类型中直接用该int float double,在继承NSObject的类中需要对该类型后添加*
在函数的结构为:【-(返回类型)方法名With参数1:(参数类型)参数1 参数2:(参数类型)参数】;
2.Swift:
声明时会根据该值去指定类型,也可以通过let a:int = 1 强制指定类型
在函数的结构为:【是否公开 func 方法名(参数1:参数类型,参数2:参数类型)】
3.Java
指定该类型时无论是int 还是其他无需添加*
在函数的结构为:【是否公开 返回类型 方法名(参数类型 参数1, 参数类型 参数2) 】
4.Python
在函数的结构为:【def 方法名(参数1,参数2):】
Python语句中无 {}语法,需要是用:来代替{ ,所以Python是需要严格遵守缩进原则
5.JavaScript
在函数的结构为:【function 方法名(参数1,参数2)】
打印调试:
Objective-C: NSLog(@"%@",@"string");
Swift: print("string");
Java: system.out.println("string");
Python: print("string");
JavaScript: console.log("string");
运算符 流控制
整理出相同与不同的地方,由于语言的语法不同,但是思路相同,在此我用swift来表示
相同
#加减乘除 自加 自检
var a = 10;
a =a + 5 => a +=5; //加
a =a - 5 => a -=5; //减
a =a * 5 => a *=5; //乘
a =a / 5 => a /=5; //除
a++; //自加
a--; //自减
#判断语句
if (条件为真) {
条件真执行语句
}else{
条件假执行语句
}
#遍历语句
for (int i=0,i<10;i++) {
遍历语句
}
#分支语句
switch (参数){
case 条件1:{
条件1执行语句
break;
}
case 条件2:{
条件2执行语句
break;
}
default:
}
}
不相同
1.java中的布尔值声明中 用boolean声明,其他语言都用Bool
2.swift中的布尔值只能接受true,false 不支持yes ,no
3.swift 不支持 a+=1 a=+1 该操作
4.swift 不支持 for循环,只支持 for i in ..<10,
5.在JavaScript语句中
= 代表赋值
== 代表值相同 (由于JavaScript是解释型语言,“1” == 1 是为true)
===代表类型相同,值相同
网友评论