九天雁翎的博客
如果你想在软件业获得成功,就使用你知道的最强大的语言,用它解决你知道的最难的问题,并且等待竞争对手的经理做出自甘平庸的选择。 -- Paul Graham

一个无聊男人的疯狂《数据结构与算法分析-C++描述》学习笔记 用C++/lua/python/bash的四重实现(2) IntCell类

一个无聊男人的疯狂《数据结构与算法分析-C++描述》学习笔记 用C++/lua/python/bash的四重实现(2)

IntCell类

write by** 九天雁翎(JTianLing) –
blog.csdn.net/vagrxie
**

 

《数据结构与算法分析c++描述》 Mark Allen Weiss著 人民邮电大学出版 中文版第8面,图1-5,一个最最简单的类

刚开始都是太简单没有技术含量的东西,这样也好,不至于把我吓到,毕竟lua学了已经4个月了,python学了已经2个月了都没有怎么用,而sh虽然最近才学,但是实践的也是这么少。。。。。唯一已经不用思考语法的就是C++了吧。。。呵呵C++和汉语一样都是我的“母语”,虽然全世界人都说他复杂,但是用了这么久也就习惯了。

python就像英语,本身语法比较简单,但是学的比较晚,(相对于汉语/C++),所以暂时不能完全体会它的好处,但是学的时间越久你就会越喜欢:)最最让人郁闷的是词汇(库)丰富的让你想哭,要掌握全太难了。呵呵平时虽然看的多,却说/写的少。

lua就像是日语吧,虽然学过,知道其基本的发音(语法),但是却从来不说(不写代码),最多丢几句(写几段)最最简单的东西。

bash就像是韩语,想去学,但是看着头晕,奇形怪状的字符(语法)让人不得其要领。

以下为实现部分:

CPP:
书上已有实现。

LUA:

#!/usr/bin/env lua

IntCell = {  storedValue = 0 }

function IntCell:new(orig)
    if type(orig) == "number" then
        o = {}
        o.storedValue = orig
    else
        o = orig or {}
    end
    setmetatable(o, self)
    self.__index = self
    return o
end

function IntCell:read()
    return self.storedValue
end

function IntCell:write(x)
    self.storedValue = x
end

-- test code
-- new IntCell and read and write
a = IntCell:new()
print("a:" .. (a:read()))
a:write(10)
print("a:" .. (a:read()))

-- create IntCell from a
b = IntCell:new(a)
print("b:" .. (b:read()))

-- create IntCell from a number
c = IntCell:new(100)
print("c:" .. (c:read()))

PYTHON:

#!/usr/bin/env python

class IntCell(object):
    def __init__(self, orig = 0):
        self.storedValue = orig
    def read(self):
        return self.storedValue
    def write(self,x):
        self.storedValue = x

# Test Code
def Test():
    a = IntCell()
    print "a:" + str(a.read())
    a.write(10)
    print "a:" + str(a.read())

    b = IntCell(100)
    print "b:" + str(b.read())

if __name__ == '__main__':
    Test();

BASH:

1 没有类的概念。。。也没有办法像lua一样模拟出来(就我所知)

 write by** 九天雁翎(JTianLing)
-- www.jtianling.com
**

分类:  Lua  Python  算法 
标签:  Bash  C++  Lua  Python  《数据结构与算法分析-C++描述》 

Posted By 九天雁翎 at 九天雁翎的博客 on 2008年11月18日

前一篇: 一天一个C Run-Time Library 函数 (10) atol,atof,atoi, ltoa , itoa, 后一篇: 一天一个C Run-Time Library 函数 (11) bsearch