• 请不要在回答技术问题时复制粘贴 AI 生成的内容
jadeborner
V2EX  ›  程序员

不支持 goto 的语言,不是好语言

  •  
  •   jadeborner · Jan 28, 2021 · 2729 views
    This topic created in 1958 days ago, the information mentioned may be changed or developed.
    没有哪一种方法比 goto 从多层循环中跳出更优雅了
    12 replies    2021-01-29 22:01:22 +08:00
    hupo0
        1
    hupo0  
       Jan 28, 2021
    return
    scukmh
        2
    scukmh  
       Jan 28, 2021
    资瓷
    gdtdpt
        3
    gdtdpt  
       Jan 28, 2021
    更优雅的可能是不写多层循环……
    bruce0
        4
    bruce0  
       Jan 28, 2021
    @gdtdpt 虽然是这个道理 但是有些时候必须要多层循环

    ------------------------------------------------------------------------------------

    一般的语言都告诉开发者 尽量避免使用 goto 但是 go 语言很多地方推荐使用 goto 而且 break 也可以和 goto 一样 跳到指定位置
    wander639
        5
    wander639  
       Jan 28, 2021 via iPhone
    go 里面 for-select 基本上都是用 goto 跳出的
    asAnotherJack
        6
    asAnotherJack  
       Jan 28, 2021
    @wander639 #5 可以试下 label
    mxalbert1996
        7
    mxalbert1996  
       Jan 28, 2021 via Android
    减少潜在的屎山也不是坏事
    Kasumi20
        8
    Kasumi20  
       Jan 29, 2021
    @gdtdpt 请问如何将冒泡排序、选择排序等二层循环降维
    aguesuka
        9
    aguesuka  
       Jan 29, 2021 via Android
    @Kasumi20 递归,把优化交给编译器
    zm8m93Q1e5otOC69
        10
    zm8m93Q1e5otOC69  
       Jan 29, 2021
    多层循环不应该优化吗?反而 goto ?
    Kasumi20
        11
    Kasumi20  
       Jan 29, 2021
    @aguesuka 递归还行,我直呼内行
    aguesuka
        12
    aguesuka  
       Jan 29, 2021 via Android
    @Kasumi20 按照主楼的思路,当然是 haskell,agda 这种最优雅,它们都是没 for while 循环的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   931 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 46ms · UTC 19:45 · PVG 03:45 · LAX 12:45 · JFK 15:45
    ♥ Do have faith in what you're doing.