Swift 的设计是不是用力过猛了

2022-02-23 10:50:45 +08:00
 holydancer

看一些第三方库,眼花缭乱,啥写法都有。 论闭包的无数种实现形式。 语法糖的设计是不是太多了,各种各样,用力过猛并不利于一门新语言的推广啊。。 还是说,我太菜了?

8556 次点击
所在节点    Swift
70 条回复
Leviathann
2022-02-23 11:42:34 +08:00
@Lin0936 kotlin 哪有 swift 复杂
kotlin 只有末尾 lambda 可以提出来,swift 好像每个都能提出来
kotlin 类型系统大概就是 java 那套,融合一些 c#的简写( in out )
swift 的类型系统要更复杂
HeapOverflow
2022-02-23 11:45:30 +08:00
Dart 就是我心目中的理想语言,语法糖不多不少刚刚好,多线程有 future async await 还自带 stream 方便 reactive programming ,方法参数的语法灵活让代码更加可读,类型 constructor 可以跟随 assert 对检测参数合法性,等等
agagega
2022-02-23 11:52:28 +08:00
然而 Swift 的理念之一还是 keep things explicit ,花样多不代表坑就多,只能说这几年确实用力猛了点。

@jackbrother
Swift 的字符串操作繁琐是因为字符串涉及到不定长编码,本来就该这样,Rust 的字符串也不能直接用下标访问字符。
debuggerx
2022-02-23 11:53:10 +08:00
@HeapOverflow +1
个人向语言喜好 as3 dart ts python es6 go es5 c java kt shell swift php c++ oc
jackbrother
2022-02-23 11:55:36 +08:00
@agagega 但是大部分人基本上碰不到不定长编码
icyalala
2022-02-23 12:03:07 +08:00
@jackbrother Swift 、Rust 字符串底层都是 UTF-8 存储的,中英混合那就算是不定长编码了。
要是像 Java 等旧些语言那样,用 UTF-16 编码,那碰到个 emoji 也算不定长的了。
除非都用 UTF-32 ,才能直接用下标。
Building
2022-02-23 12:04:04 +08:00
你说它不智能吧: numbers.sort { < }
// 遵循对比协议,所以一个符号就可以了

你说它智能吧: let a = 2, let b = a + 1.0
// 错误! a 被推断为整型,请改为 let a: Float = 2
ksco
2022-02-23 12:06:34 +08:00
Swift 之父 Chris Lattner 已经离开 Swift 核心团队了。
a4854857
2022-02-23 12:36:26 +08:00
害.我还以为你说 switch 设计很超前大家都抄这种游戏机呢
MakHoCheung
2022-02-23 12:36:58 +08:00
是写的人喜欢龙飞凤舞,Kotlin 也一样可以龙飞凤舞
BenX
2022-02-23 12:55:42 +08:00
不是一两天的问题了,就是语法糖花活太多,不玩 Swift 了
xtinput
2022-02-23 13:04:31 +08:00
@Chad0000 那是直接没稳定,现在没这个问题了

@MakHoCheung 是的,我感觉也是因为写的人个人爱好

@Building 类型安全,系统只提供了最基本的,要不报错自己扩展实现类型兼容就 OK 了
lpvekk
2022-02-23 13:08:17 +08:00
创始人都 goodbye 了 确实 swift 被一群菜鸡搞得越来越烂
Ryanxxx
2022-02-23 14:48:55 +08:00
各位老哥能举点例子吗?就是贴代码片段的那种
HeapOverflow
2022-02-23 14:54:33 +08:00
@Ryanxxx 你可以网上查一查 swift 闭包写法大全,可以出书了
Ryanxxx
2022-02-23 14:56:51 +08:00
@HeapOverflow 好的,谢谢老哥
okakuyang
2022-02-23 15:10:00 +08:00
swift 不就有一个多尾闭包,我觉得很爽啊。
wanguorui123
2022-02-23 15:11:45 +08:00
论过度设计
zjddp
2022-02-23 15:13:31 +08:00
Use Swift, Learn EVERY Year. ;(
Alexc
2022-02-23 15:18:37 +08:00
我做 Android 的,没用过 swift ,但我感觉 kotlin 语法糖太多了,花里胡哨的,这样会让人觉得这门语言很复杂。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/835867

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX