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

golang 怎么没有基于文件的私有函数和变量阿

  •  
  •   ryanking8215 ·
    ryanking8215 · Jul 9, 2014 · 6537 views
    This topic created in 4506 days ago, the information mentioned may be changed or developed.
    golang在同一个package下的各文件里,不能有重名的函数和变量,有点不适应,c/c++都有static阿。

    小写只是控制外部模块能否访问,不是控制外部文件的。
    10 replies  •  2014-07-09 13:02:12 +08:00
    46fo
    46fo
    Jul 9, 2014
    1
    小写 不也 相当于 static 么?

    不是控制外部文件的。是什么意思?
    ryanking8215
    ryanking8215
    OP
    Jul 9, 2014
    2
    @xdeng 比如有a.go,b.go,都是package main,都有func jjj() {}, 编译会报错
    rwx
    rwx
    Jul 9, 2014
    3
    基本上跟class里的private成员一个意思。。都是自己人就别防着了
    一个包就是一个整体,分成多个文件是为了组织的好一些,为嘛还要每个文件单独开一个namespace?
    ryanking8215
    ryanking8215
    OP
    Jul 9, 2014
    4
    go按照package来的,大写的符号能被其他package引用,小写的不能。但是在同一个package内,符号都是全局的
    ryanking8215
    ryanking8215
    OP
    Jul 9, 2014
    5
    @rwx 我们是一个班的,但是你总不会让我翻你钱包吧。 :-),不抬杠了。
    这个问题不是不好解决,换个名字就是了。
    比如有个student,class的数据库,写个controller控制各自的CRUD
    controller/student.go, controller/class.go,
    本意想各自有create,delete,update等func,但是现在只能create_stu(),create_class()
    有点罗嗦,应该也可通过OOP来解决, (s *Student)delete(),这个func有上下文了应该能区分了吧
    ryanking8215
    ryanking8215
    OP
    Jul 9, 2014
    6
    而func init(){}又是特殊的,在每个文件内是独立的
    se77en
    se77en
    Jul 9, 2014
    7
    你这个问题完全可以通过 method 解决
    fansekey
    fansekey
    Jul 9, 2014
    8
    @se77en +1
    ryanking8215
    ryanking8215
    OP
    Jul 9, 2014
    9
    @se77en 能详细说一下吗?
    ryanking8215
    ryanking8215
    OP
    Jul 9, 2014
    10
    o,了解了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1635 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 102ms · UTC 16:16 · PVG 00:16 · LAX 08:16 · JFK 11:16
    ♥ Do have faith in what you're doing.