尝试用不同语言写简单题的过程中的一些小发现
Python:
python2中的sort函数是允许传入cmp函数的
1 def comp(x, y): 2 return x - y 3 a = [3, 2, 1] 4 a.sort(comp)
与我们常用的c++的cmp函数类似
但是python3中取消了cmp函数的支持,sort如下
sorted(iterable,key=None, reverse=False)
key指定一个接收一个参数的函数,这个函数用于从每个元素中提取一个用于比较的关键字。默认值为None 。
1 def comp(x): 2 return x 3 a = [3, 2, 1] 4 a.sort(comp)
所以python3中用这种写法实现和上面代码一样的功能
Java:
HashMap<K, V>中K和V必须是具有hashCode方法的类,所以
HashMap<int, int> hMap = new HashMap<int, int>();
这种写法是会报错的,int没有hash方法,改为
HashMap<Integer, Integer> hMap = new HashMap<Integer, Integer>();
即可。int类型是可以直接隐式转换成Integer类型的
Scala(吐槽cnblog的插入代码都还不支持scala):
之前没有深入了解....帮人写完作业就没有继续探究这门语言了...
for循环是不能直接支持break和continue语句的,需要借助breakable
输出0-4可以用以下方式实现
1 breakable { 2 for (i <- 0 to 9) { 3 println(i) 4 if (i == 4) break 5 } 6 }
输出小于10的非负偶数
1 for (i <- 0 to 9) { 2 breakable { 3 if (i % 2 == 1) break 4 println(i) 5 } 6 }