aheadlead

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

  •  
  •   aheadlead · Jan 5, 2015 · 4144 views
    This topic created in 4175 days ago, the information mentioned may be changed or developed.
    C++忘了一些了...写一写还要翻语法书...

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

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

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

    Shen me GUI!
    jy01264313
        25
    jy01264313  
       Jan 6, 2015
    为什么不是试试 scala
    aaaa007cn
        26
    aaaa007cn  
       Jan 6, 2015   ❤️ 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

    我觉得用这个例子更好
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1303 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 102ms · UTC 23:46 · PVG 07:46 · LAX 16:46 · JFK 19:46
    ♥ Do have faith in what you're doing.