语言或多或少都有坑。
// 像 javascript 不小心把字符串和数值加在一起
alert("1"+2); // "12"
# python 里,把字符串和数值加在一起会报 TypeError,避开了这个坑
# 但是...
def fn(x, L=[]):
L.append(x)
return L
print(fn(1)) # [1]
print(fn(7)) # [1, 7]
print(fn(13)) # [1, 7, 13]
// 而 javascript (ES6) 没有上面那个坑
function fn(x, L=[]){
L.push(x);
return L.toString();
}
console.log(fn(1)) // "1"
console.log(fn(7)) // "7"
console.log(fn(13)) // "13"
想了想 javascript, python 都是脚本,那考虑 C语言,又发现 C语言变量声明时未赋初值 就拿来使用会跑出随机的垃圾值,反而 python 中的变量不需要声明(或者说,赋值的同时也声明了)避开了这个坑。
既然语言或多或少都有坑,那就有多寡的差别。各位同学接触过(或听过)的语言坑最少的是哪个?

