The Go Programming Language
› http://golang.org/
› Go Playground
Go Projects
› Revel Web Framework
DCCooper

macOS 下的 golang 包名带汉字不能编译运行

  •  
  •   DCCooper · Jan 31, 2021 via iPhone · 5991 views
    This topic created in 2107 days ago, the information mentioned may be changed or developed.

    背景: 在公司刷 leetcode 的时候,为了方便查找,按照一道题一个文件夹区分的,所以 package 名字也就类似 leetcode_51_N 皇后

    公司 Linux 环境上这种组织形式是可以编译运行的,但是回家切换到 macOS 上就会出现 malformed import path invalid char:’皇’ 这样的报错。

    macOS 和 Linux 都用的 go1.15.7,没打开 go mod 。

    有遇到类似情况的哥们儿吗?教教我咋搞,或者提供另一种方式来区分下每道题(强迫症)

    Supplement 1  ·  Jan 31, 2021
    感谢老哥们的留言:
    归纳一下:
    1 、尽量使用英语
    2 、尝试自己动手管理
    3 、学好英语(瓦英语是没问题的~~~😹)
    4 、去喷股沟:-)
    5 、貌似没有解决办法

    ps:刷的力扣,所以都是中文。
    感谢老哥们热心答复,过年留守继续刷题了。。。
    Supplement 2  ·  Feb 1, 2021
    最新实践:
    结论:golang 支持中文作为包名
    方法:export GO111MODULE=off
    缺点:无法使用 go mod 管理依赖了,不过力扣的题应该用不到额外的库~

    感谢真心参与讨论的老哥们~
    问题解决了,又可以舒舒服服的刷题了,提前祝大家新年快乐,早日升级加薪!
    28 replies  •  2022-08-13 16:06:23 +08:00
    boris93
    boris93
    Jan 31, 2021 via Android
    1
    用英文
    路径绝对不建议带中文
    DCCooper
    DCCooper
    OP
    Jan 31, 2021 via iPhone
    2
    @boris93 英文还真没汉字认得快😂
    jeremaihloo
    jeremaihloo
    Jan 31, 2021 via Android
    3
    其实你可以这个脚本方便查找的,代码注释里面写中文名字。查找的时候就可以用中文了,没必要路径用中文
    fiypig
    fiypig
    Jan 31, 2021 via iPhone
    4
    命名用中文这习惯不好
    DCCooper
    DCCooper
    OP
    Jan 31, 2021 via iPhone
    5
    @fiypig 只在这个自己的题库里用到了中文😅
    DCCooper
    DCCooper
    OP
    Jan 31, 2021 via iPhone
    6
    @jeremaihloo 之所以这样做就是想类似于那种小卡片,看一眼就能想起来这道题是啥
    icebay
    icebay
    Jan 31, 2021
    7
    那试试额外管理一份软链接?
    MaxLi77
    MaxLi77
    Jan 31, 2021
    8
    退一步,用拼音也行啊
    edwintuan
    edwintuan
    Jan 31, 2021 via Android
    9
    英语有点堪忧阿,楼主 qwq
    52coder
    52coder
    Jan 31, 2021
    10
    在公司刷 leetcode 有点胆肥呀,养成良好习惯,用英文,leetcode 上题目标题不是英文吗?
    WebKit
    WebKit
    Jan 31, 2021 via Android
    11
    我用 IDEA 带中文名字是可以的。
    no1xsyzy
    no1xsyzy
    Jan 31, 2021
    12
    去 golang/go 提 issue 啊(
    MrKrabs
    MrKrabs
    Jan 31, 2021
    13
    居然没人说股沟坏话
    keenkiller
    keenkiller
    Jan 31, 2021
    14
    go 官方的包名规范是全小写字母啊。。下划线啥的都不要用
    zeroDev
    zeroDev
    Jan 31, 2021 via Android
    15
    也许可能是编码问题?
    DCCooper
    DCCooper
    OP
    Jan 31, 2021❤️1
    16
    @zeroDev 编码问题应该不存在,同一套代码,我旧的英特尔芯片 MacBookPro 没问题,M1 芯片的跑不了。
    jinliming2
    jinliming2
    Feb 1, 2021❤️1
    17
    看起来与这个 Issue 相关: https://github.com/golang/go/issues/29101
    你可以试一试 go 1.16 rc 版。
    djoiwhud
    djoiwhud
    Feb 1, 2021 via Android
    18
    英语烂的不建议做 it 行业。
    DCCooper
    DCCooper
    OP
    Feb 1, 2021 via iPhone❤️1
    19
    @djoiwhud 老哥是早上刚起来没洗漱呢吧,啥时候说自己英语烂了...
    DCCooper
    DCCooper
    OP
    Feb 1, 2021 via iPhone
    20
    @jinliming2 十分感谢!
    labulaka521
    labulaka521
    Feb 1, 2021 via iPhone
    21
    @tairan2006 下划线可以用吧 测试文件就有下划线
    wszgrcy
    wszgrcy
    Feb 1, 2021 via Android❤️10
    22
    我觉得不是楼主的问题,其他人在避重就轻,严格的说这个 bug 出现了,那么就应该解决,而不是找一些理由去回避,虽然这些理由看起来好像合理,但是这毕竟是个问题,那么就应该解决,不要把饭圈的那一套搞过来
    Leigg
    Leigg
    Feb 1, 2021 via iPhone
    23
    这是 mac 上的 bug,提 bug
    yebo777
    yebo777
    Feb 1, 2021
    24
    只看下面的回复还以为是楼主的问题。。。
    Daming
    Daming
    Feb 1, 2021 via Android
    25
    我就喜欢枚举用中文,直观
    qiaocc
    qiaocc
    Jul 26, 2021
    26
    +1, 我也遇到了. 官方还在讨论: https://github.com/golang/go/issues/45549
    yangyile
    yangyile
    Mar 12, 2022❤️2
    27
    通过修改 go 源码即可解决:
    修改代码:
    /usr/local/go/src/cmd/vendor/golang.org/x/mod/module/module.go
    修改函数:
    func modPathOK(r rune) bool {
    if r < utf8.RuneSelf {
    return r == '-' || r == '.' || r == '_' || r == '~' ||
    '0' <= r && r <= '9' ||
    'A' <= r && r <= 'Z' ||
    'a' <= r && r <= 'z'
    }
    // return false // 修改这里使得包名和路径名支持更大的字符集合,当然也可以限制仅放开中文符号
    return true
    }
    dqifree
    dqifree
    Aug 13, 2022
    28
    不知道还有没有人看。亲测。go1.16 不行,换用 go1.13 就支持
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1439 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 62ms · UTC 00:12 · PVG 08:12 · LAX 16:12 · JFK 19:12
    ♥ Do have faith in what you're doing.