对于数学运算 Swfit 不自动提升和转换类型,这难道不是脑残的设计?

2015-08-10 08:27:34 +08:00
 kalintw
土鳖对此表示不解,如此酸爽?
5748 次点击
所在节点    Swift
57 条回复
Perry
2015-08-10 09:20:36 +08:00
有个 IDE(Xcode)不是多大事情吧 8 楼的例子
wezzard
2015-08-10 09:39:41 +08:00
單單以爲方便就是好的設計,我也瞬間感覺甚麼都說不出。
likid
2015-08-10 09:39:59 +08:00
var c= Double(x) + y // Error, Prefix/postfix '=' is reserved
dorentus
2015-08-10 09:58:50 +08:00
Swift 1.2 曾经支持过 implicit conversion 的,原生类型默认没有,但是当时你可以写这样的代码:

extension Double {
func __conversion() -> UInt8 { return UInt8(self) }
func __conversion() -> Int { return Int(self) }
// add more if you need to
}

那时 String 和 NSString 之类也是隐式转来转去的,经常出各种问题……
huanglexus
2015-08-10 10:06:15 +08:00
楼组应该学一学编译原理
ibremn
2015-08-10 10:15:58 +08:00
@kalintw
8楼没用过 Python 吗。。少个空格试试╮( ̄▽ ̄")╭
jiang42
2015-08-10 10:27:27 +08:00
@kalintw 在我看来,C不是强类型语言。BTW, 强弱类型并没有一个明确的定义。所以最好不要说某语言是强类型。

Swift的设计没啥问题。

难道以后圣战又要多一个项目了么……
publicID001
2015-08-10 10:44:54 +08:00
@jiang42 类型系统是个超级大坑
publicID001
2015-08-10 10:46:51 +08:00
kalintw
2015-08-10 10:48:36 +08:00
@ibremn
你说的是缩进吧
w88975
2015-08-10 10:51:32 +08:00
@kalintw 我觉得不自动进行类型转换是好处大于坏处的,如果涉及到比较高精度的计算,你就知道这种设计的好处了.
jiang42
2015-08-10 10:51:49 +08:00
@publicID001 诶,你给我发维基地址干嘛,我没说错啊,there is no universally accepted definition of what these terms mean.

想一想类型系统有多少paper,颤抖吧凡人
kalintw
2015-08-10 10:53:15 +08:00
@huanglexus
各有所爱,学了编译原理我也觉得适当的自动类型隐式转换还是挺好的
publicID001
2015-08-10 10:57:26 +08:00
@kalintw 显示类型转换在我看来感觉是防呆设计
JohnSmith
2015-08-10 10:59:10 +08:00
不太推荐隐式转化,近年出的静态语言都要求显示转换了
wangyifei6817
2015-08-10 10:59:35 +08:00
C是强类型?
想学swift就按照swift的类型玩,被自动转换坑过的都知道强类型推断的好处
至于你那个等号的问题 是因为实现了运算符重载协议 导致的冲突 要么空格 要么重载运算符
kalintw
2015-08-10 11:00:31 +08:00
@ipconfiger
@jiang42
@w88975
@publicID001
@jaminzzhang
@huanglexus

既然这种严格的类型检查safe,好处大,奇怪为啥Python、Ruby这些语言都提供了隐式类型转换?
publicID001
2015-08-10 11:01:10 +08:00
@kalintw 符合直觉
fo2w
2015-08-10 11:04:02 +08:00
说委婉一点, 就是
因为没有被大坑过, 所以觉得自信满满
说直白一点, 就是
因为无知, 所以无畏
kalintw
2015-08-10 11:05:45 +08:00
@fo2w
呵呵,多谢夸奖

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

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

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

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

© 2021 V2EX