V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yuancoder
V2EX  ›  Swift

学 Swift 有感

  •  
  •   yuancoder · 2022-05-04 12:20:10 +08:00 · 4024 次点击
    这是一个创建于 715 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近看 swift 语法,太想骂人了,东西太多了。

    各种闭包写法,关键词,语法糖。

    看别人的代码,脑子里一堆问号,这都是什么意思。

    这是第一个让我学的想吐的语言。

    31 条回复    2022-08-17 17:34:42 +08:00
    kidlj
        1
    kidlj  
       2022-05-04 12:50:18 +08:00 via iPhone   ❤️ 1
    Java: 我只有 class
    Go: 我只有 struct
    Swift: 嘿嘿 我全都要!
    icyalala
        2
    icyalala  
       2022-05-04 12:53:39 +08:00   ❤️ 2
    糖少嫌淡,糖多嫌齁
    cssk
        3
    cssk  
       2022-05-04 13:00:36 +08:00 via iPhone
    写完 oc 写 swift ,太 tm 舒服了
    akring
        4
    akring  
       2022-05-04 13:39:40 +08:00   ❤️ 2
    建议先接受 Objective-C 治疗,脱敏后再来看 Swift
    Livid
        5
    Livid  
    MOD
       2022-05-04 13:43:01 +08:00   ❤️ 1
    无论你学一门语言的目的是为了吐槽它还是用它实际做出东西来,Swift 都可以满足你。
    yuancoder
        6
    yuancoder  
    OP
       2022-05-04 13:44:34 +08:00
    @cssk #3
    @akring #4

    就是看了 oc 的代码,才决定学习 swift 😂
    yuancoder
        7
    yuancoder  
    OP
       2022-05-04 13:45:19 +08:00
    @kidlj #1

    别的语言有的它都有,别的语言没有的它还有。
    yuancoder
        8
    yuancoder  
    OP
       2022-05-04 13:46:08 +08:00
    @Livid #5

    学完 swift ,再也不怕学别的了。
    fredli
        9
    fredli  
       2022-05-04 13:54:00 +08:00
    为了学而学,看不到用处
    WildCat
        10
    WildCat  
       2022-05-04 14:01:07 +08:00
    Rust 和 C++ 比 Swift 学习曲线陡峭多了。
    basefas
        11
    basefas  
       2022-05-04 14:05:26 +08:00
    我觉得 swift 像是文科生设计出来的语言,比较「浪漫」(中性词),他想的不是怎么方便开发,怎么方便工程化,就是考虑怎么写出来比较「看起来优雅」的这么一种语言。目前也在学 swift ,一样的感觉,哈哈。
    tyx1703
        12
    tyx1703  
       2022-05-04 14:07:26 +08:00
    确实,语法糖太多了
    sxeuosme
        13
    sxeuosme  
       2022-05-04 14:12:45 +08:00 via iPhone
    @yuancoder 你住的地方有 Swift 的就业机会吗。真的很稀缺
    yuancoder
        14
    yuancoder  
    OP
       2022-05-04 14:14:45 +08:00
    @sxeuosme #13 我学是为了自己写应用,不是为了就业。
    Buges
        15
    Buges  
       2022-05-04 14:22:00 +08:00 via Android
    Swift 语言本身还是不错的,不过是现代语言中唯一一个「不跨平台」的,继承了果系一贯传统。
    (不是能跑就叫跨平台,工具链、标准库、相应生态都不行)
    yuancoder
        16
    yuancoder  
    OP
       2022-05-04 14:35:12 +08:00
    @basefas #11 感觉这语言已经不受控了,没有一个核心的设计思想,什么都想要。

    像 java 的一切皆对象,go 的少即是多, 都有一些核心的设计原则,swift 呢,大杂烩。
    eternaljust
        17
    eternaljust  
       2022-05-04 15:00:34 +08:00   ❤️ 1
    @yuancoder 如果你就写自己的应用,可以直接学 SwiftUI 来快速开发 App ,声明式 UI 比命令式 UI 便捷太多,也是苹果这两年主推的。这样你就可以在上手过程中慢慢就把 Swift 相关的语法熟悉了。
    lawler
        18
    lawler  
       2022-05-04 15:47:56 +08:00
    所以我选 flutter
    anxiousPumpkin
        19
    anxiousPumpkin  
       2022-05-04 15:54:10 +08:00
    我也在学习中,发现跟 kotlin 和 flutter 还是有蛮多相似点的
    echo1937
        20
    echo1937  
       2022-05-04 16:25:45 +08:00
    @Buges #15 Swift 的工具链和标准库不跨平台吗?
    yuancoder
        21
    yuancoder  
    OP
       2022-05-04 16:31:49 +08:00
    @eternaljust #17 就是发现 swiftui 看不懂,才开始学习 swift [二哈]
    impl
        22
    impl  
       2022-05-04 20:58:03 +08:00 via Android
    kotlin 也是
    Removable
        23
    Removable  
       2022-05-04 22:37:09 +08:00 via iPhone
    @yuancoder 推荐《 SwiftUI by Tutorials 》这本书,跟着学挺好的
    Buges
        24
    Buges  
       2022-05-05 00:11:54 +08:00 via Android
    @echo1937 不是能跑就叫跨平台的,你看看目前市面上有真正的 Swift 编写的跨平台应用吗?
    agagega
        25
    agagega  
       2022-05-05 01:21:58 +08:00 via iPhone
    Swift 早期的设计思路还是很明确的:在不至于混淆的时候加糖,在可能引发潜在 bug 的地方加盐(比如要求显式转换)。后来就越来越放飞自我了。另外兼容 OC 也是 Swift 的一个负担,否则能少很多奇怪的点。(毕竟 OC 也是个奇怪的语言)

    Swift 在 Apple 生态圈之外推不开和 Apple 的态度也有很大关系。但凡他们有微软推 C#一半的热情,Swift 也要比今天火得多。
    agagega
        26
    agagega  
       2022-05-05 01:24:58 +08:00 via iPhone
    @agagega
    SwiftUI 这个框架本身有很精彩的设计思路。但是毫无疑问,苹果为实现 SwiftUI 加了很多专用语法,甚至是先发布+内部实现了再拿到社区来走过场,过于激进了些。
    chipmuck
        27
    chipmuck  
       2022-05-05 17:34:27 +08:00
    Swift Closure: https://docs.swift.org/swift-book/LanguageGuide/Closures.html

    其实以闭包来说,官方文档很好地解构了「为什么 Swift 闭包花样那么多?」的这个问题,且文档对闭包的省略都是逐步、并且有理有据的。
    yuancoder
        28
    yuancoder  
    OP
       2022-05-05 21:44:49 +08:00
    @chipmuck #27 除了增加学习成本,和阅读成本之外,没感觉到有什么意义。
    Bruce2077
        29
    Bruce2077  
       2022-05-18 15:43:09 +08:00
    Chris Lattner 都难逃“劣币驱逐良币”,目前确实有些失控。。。
    ravenZ
        30
    ravenZ  
       2022-08-17 17:13:52 +08:00
    @agagega 抱歉挖了个坟.... 因为我搜索了,思考了也没能理解什么叫做加盐.. 加糖看含义上应该是加了语法糖.. 但是盐更明确的意义指的是什么 呢?
    agagega
        31
    agagega  
       2022-08-17 17:34:42 +08:00 via iPhone
    @ravenZ
    比如 C 语言里有大量的隐式类型转换,早期的 C 甚至可以在指针和整数间随便转没任何警告。现在大家意识到语言应该限制程序员这样做,转换的时候要显式加上标记。这样程序的语义没任何变化,但为了避免潜在 bug 和提高可读性,要写的东西变多了,这就叫加盐。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1304 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 17:37 · PVG 01:37 · LAX 10:37 · JFK 13:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.