dragondove 最近的时间轴更新
dragondove

dragondove

V2EX 第 450638 号会员,加入于 2019-11-01 21:38:24 +08:00
今日活跃度排名 18121
dragondove 最近回复了
3 天前
回复了 aqtata 创建的主题 Linux 远程连接终端中怎么粘贴文本?
换 neovim 会好点,neovim 自带支持 osc52 ,vim 需要插件来支持。详情看 :h clipboard-osc52
tab 在不同地方一致性的问题在现在不是问题,主流编辑器/IDE 都支持调整 tab 的显示大小,github 也支持个人设置里设置 tab 的显示大小,或者在地址栏里使用 ?ts=8 参数可以调节代码中 tab 的显示大小。
tab 的好处就是不同人不同显示设备可以按照个人喜好随意调节而不破坏原本的代码,不过实际使用时可能要用空格补齐对齐,而且不同 ts 大小会导致对齐被破坏。例如下面的 python 代码
l: list[list[int]] = [[1, 2],
[3, 4]]
这里 [3 前需要空格补充对齐,而且换个 ts 可能就会导致左中括号和上一行无法对齐。(例如这个变量名 l 是很长的一串)
this_is_a_long_variable_name = ... 这样的东西,换个行来对齐就容易出问题
17 天前
回复了 codists 创建的主题 Python Python 3.14 采用新型解释器,速度提高-3%~30%
@wionch 现阶段的 nogil 只能帮助提升多线程的性能,单线程的性能反而会下降,你可以自己构建 python 3.13 ,构建参数有 gil 相关的,现在已经可以关闭了。
@codegenerator 显然可还行,你要不看看极客湾最新的测试视频,星穹铁道的帧率稳定性根本比不过一些安卓机。稳定性不行不可能流畅
31 天前
回复了 nnegier 创建的主题 程序员 可以讲下你看到的编程语言的美吗?
@mcfog 和语言设计者的功底也有关,以及语言提供多大的自由度(有时候限制自由是好事),举个例子,scala 没有运算符重载,但是也可以给任意类型添加运算符。因为 scala 的函数名可以为符号,结合扩展方法和中缀表达式就可以给类型添加运算。scala 中 `1 + 2` 就是 `1.+(2)` 而已。这样就不需要额外引入运算符重载的语法了。缺点就是自由度过大,导致一些库作者玩的太花,各种自定义运算符满天飞。所以有时候限制自由度是有好处的
31 天前
回复了 nnegier 创建的主题 程序员 可以讲下你看到的编程语言的美吗?
@Dropless 创建对象的话,kotlin 和 scala 都可以直接 `val person = Person()` 也足够简洁(数字符的话和 Person person = new() 是一样多的),不过 scala 中内置的想法会不太一样,scala 是 universal apply (实际上调用的是 Person 伴生对象的 apply 方法)更加通用一些,也可以自行改造成工厂方法(用起来和构造器一样,实际是工厂,更加统一)
31 天前
回复了 nnegier 创建的主题 程序员 可以讲下你看到的编程语言的美吗?
@scp3125 Result 对比 Checked Exception 并没有显著的优势,你的例子换成 java 写可能还更简洁
```java
public static String readFile(String path) throws FileNotFoundException, IOException {
File file = new File(path);
try (var fis = new FileInputStream(file)) {
return new String(fis.readAllBytes());
}
}
```
异常靠 throws 传播,和你的问号作用基本是一样的,函数的返回类型还更简单,模式匹配靠 catch 匹配,能达到相同的效果,代码还更简洁。
31 天前
回复了 nnegier 创建的主题 程序员 可以讲下你看到的编程语言的美吗?
@dwu8555 你这个例子不太能表现出 LINQ 的优势,对应的 scala 代码如下
```scala
val scores = Array(97, 82, 60, 99)
val r = for score <- scores
if score > 80
yield score

println(r.mkString(" "))

```
python 也可以做到更简洁
```python
scores: list[int] = [97, 92, 81, 60]
r = [score for score in scores if score > 80]
print(" ".join([str(x) for x in r]))
```
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1296 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 16ms · UTC 23:41 · PVG 07:41 · LAX 15:41 · JFK 18:41
Developed with CodeLauncher
♥ Do have faith in what you're doing.