yuancoder
V2EX  ›  Swift

学 Swift 有感

  •  
  •   yuancoder · May 4, 2022 · 6183 views
    This topic created in 1646 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

    就是看了 oc 的代码,才决定学习 swift 😂
    yuancoder
    yuancoder
    OP
    May 4, 2022
    7
    @kidlj #1

    别的语言有的它都有,别的语言没有的它还有。
    yuancoder
    yuancoder
    OP
    May 4, 2022
    8
    @Livid #5

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

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

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

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