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

我发现不能被 Python 这类的动态语言惯坏了,偶尔也要用 C++这类语言写点东西...

  •  
  •   aheadlead · 2015-01-05 17:13:42 +08:00 · 3686 次点击
    这是一个创建于 3635 天前的主题,其中的信息可能已经有所发展或是发生改变。
    C++忘了一些了...写一写还要翻语法书...

    翻了一会儿还没找到Python里面的super的等价物..
    26 条回复    2015-01-06 19:51:03 +08:00
    BOYPT
        1
    BOYPT  
       2015-01-05 17:17:25 +08:00   ❤️ 1
    class Foo : public BaseClass {
    public:
    Foo() : BaseClass("asdf") {}
    };
    freefcw
        2
    freefcw  
       2015-01-05 17:18:28 +08:00   ❤️ 1
    C++这种多继承的语言,爹太多了。。。
    jyzhengqian
        3
    jyzhengqian  
       2015-01-05 17:22:40 +08:00   ❤️ 1
    this->BaseClass::function(param);
    pright
        4
    pright  
       2015-01-05 17:27:49 +08:00   ❤️ 1
    C++没这样的机制
    chchwy
        5
    chchwy  
       2015-01-05 17:34:23 +08:00   ❤️ 1
    C++ 的好處就是可以呼叫老爸的老爸的 function, 要穿越幾層繼承都行.
    不像 super 只能往上一層.
    aheadlead
        6
    aheadlead  
    OP
       2015-01-05 17:56:51 +08:00
    @BOYPT
    @freefcw
    @jyzhengqian
    @pright
    @chchwy 没想到大家都是来解决问题的....我发帖之前已经发现我silly B了...
    msg7086
        7
    msg7086  
       2015-01-05 20:49:46 +08:00 via iPhone
    快用ruby…(死
    aheadlead
        8
    aheadlead  
    OP
       2015-01-05 22:38:31 +08:00
    @msg7086 话说 学了Python之后有必要学个Ruby吗...感觉这俩语言差不多
    aaaa007cn
        9
    aaaa007cn  
       2015-01-05 23:30:36 +08:00
    差太多了……
    对 ruby 不是非常熟悉的话
    看不同人/风格的代码会非常吃力
    光一个函数参数要不要加括号,什么时候加就可以玩死你了

    有时 unless 也会让我大脑短路下
    http://www.railstips.org/blog/archives/2008/12/01/unless-the-abused-ruby-conditional/
    skybr
        10
    skybr  
       2015-01-05 23:34:40 +08:00 via Android
    unless是ruby搬perl的
    aheadlead
        11
    aheadlead  
    OP
       2015-01-05 23:41:18 +08:00
    @aaaa007cn 不是说语法...是说使用场景
    icedx
        12
    icedx  
       2015-01-05 23:42:55 +08:00
    我发现不能被C++ 这类的静态语言惯坏了, 偶尔也要用Python 这类语言写点东西...
    C++ 可以全部写在一行...
    Hysteria
        13
    Hysteria  
       2015-01-06 00:55:17 +08:00
    @icedx 我讨厌死写得一行的了,死死要让我看半天= - =
    aaaa007cn
        14
    aaaa007cn  
       2015-01-06 01:15:26 +08:00   ❤️ 1
    @aheadlead
    使用场景?
    python 是直接网上找现成代码片段、开源项目,然后和缩进作斗争
    ruby 是在 rubygems 上面找现成轮子,然后和版本号作斗争
    这样么?
    latyas
        15
    latyas  
       2015-01-06 02:34:15 +08:00
    学py感觉已经很费劲= =
    yakczh
        16
    yakczh  
       2015-01-06 08:47:20 +08:00
    学c++感觉已经很费劲= =
    243205964
        17
    243205964  
       2015-01-06 09:23:13 +08:00
    新手可以不学c++,直接学py吗?
    spacewander
        18
    spacewander  
       2015-01-06 10:34:16 +08:00
    @freefcw 很少见多继承的,虽然语法规定可以这么用,但是实际上这么用的不多。Python也是支持多继承的啊。
    spacewander
        19
    spacewander  
       2015-01-06 10:35:31 +08:00
    @243205964 可以啊,C++不是Python的前置技能
    msg7086
        20
    msg7086  
       2015-01-06 10:51:06 +08:00
    #8 @aheadlead Ruby更灵活。
    很快你就会抱怨不能被Ruby惯坏了需要用Python这种死板的语言来压压惊……
    freefcw
        21
    freefcw  
       2015-01-06 10:53:27 +08:00
    @spacewander 所以python也很坑,感觉super的问题在于在虚基表里面找父函数是个麻烦事情,python的mro也是一个坑
    msg7086
        22
    msg7086  
       2015-01-06 11:02:48 +08:00
    当然Ruby的语法坑也不少,不熟悉的话会被坑死的。
    比如你有一个函数是这样定义的:
    def f x,y
    end

    调用这个函数:
    f 1, 2 # 合法
    f(1, 2) # 合法
    f (1, 2) # 非法

    比如一个函数:
    def g hash
    end

    调用这个函数:
    g :name => "John" # 合法
    g(:name => "John") # 合法
    g({:name => "John"}) # 合法
    g {:name => "John"} # 非法
    RIcter
        23
    RIcter  
       2015-01-06 11:20:03 +08:00
    原来你是抖M
    icedx
        24
    icedx  
       2015-01-06 12:35:20 +08:00 via Android
    @msg7086
    def f x,y
    end

    调用这个函数:
    f 1, 2 # 合法
    f(1, 2) # 合法
    f (1, 2) # 非法

    Shen me GUI!
    jy01264313
        25
    jy01264313  
       2015-01-06 15:43:36 +08:00
    为什么不是试试 scala
    aaaa007cn
        26
    aaaa007cn  
       2015-01-06 19:51:03 +08:00   ❤️ 1
    @msg7086

    def f(x)
    return x+1
    end

    f 1 == 2
    f(1) == 2
    f 2 * 2 == 5
    f(2*2) == 5

    但是

    f (1+2) * 2 == 7
    f(1+2) * 2 == 8

    我觉得用这个例子更好
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2996 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 14:16 · PVG 22:16 · LAX 06:16 · JFK 09:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.