標籤:程式設計語言 知識點 如何 模型 動態
在學習新的程式設計語言的時候,我們一定要弄清楚一下幾個問題:
語言的類型模型是什嗎?
強型別/弱類型,靜態類型/動態類型
類型模型會改變問題的處理方式,控制語言的運行方式
語言的編程範型是什嗎?
物件導向、函數式、過程式等等
怎樣和語言互動?
編譯、解釋
語言的判斷結構(decision construct)和核心資料結構是什嗎?
哪些核心特性讓這門語言與眾不同?
因為每門程式設計語言都有自己的一套慣用方法,各有所長,各有縮短,通過學習不同的程式設計語言,你會明白,哪門語言最適宜解決自己當下關注的問題。下面就以我正在學習ruby程式設計語言為例,給大家說說,我會關注哪些問題,就一起來看看我對ruby程式設計語言(http://www.maiziedu.com/course/ruby/)關注的幾個知識點。
Ruby程式設計語言的簡介
由松本行弘(Yukihiro Matsumoto)大約在 1993 年發明
指令碼語言、解釋型、物件導向、動態類型
現在我的機器上安裝的ruby 版本是 2.1,可以使用下面的命令來查詢:
$ ruby -v
ruby 2.1.4p265 (2014-10-27 revision 48166) [x86_64-darwin14.0]
具體的安裝不做太多介紹,在官方網站查閱不同平台的相關資料即可,下面是一個簡單的例子
irb(main):001:0> properties = [’good’, ’bad’, ’clever’, ’stupid’]
=> ["good", "bad", "clever", "stupid"]
irb(main):002:0> properties.each {|property| puts "I am #{property}."}
I am good.
I am bad.
I am clever.
I am stupid.
=> ["good", "bad", "clever", "stupid"]
留意一下 ruby 是如何進行遍曆及值替換的,之後我們也會深入瞭解。需要注意的是,這種寫起來方便的語言,一般來說效率都不會太高。但是開發效率與執行效率常常是魚與熊掌,很多時候不得不進行選擇。
我們再來看一個長一點的例子:
irb(main):001:0> puts ’hello, wdx’
hello, wdx
=> nil
irb(main):002:0> friend = ’Snake’
=> "Snake"
irb(main):003:0> puts "hello, #{friend}"
hello, Snake
=> nil
irb(main):004:0> friend = ’Queit’
=> "Queit"
irb(main):005:0> puts "hello, #{friend}"
hello, Queit
=> nil
這裡我們可以看到以下幾點:
不用聲明變數
每條 ruby 代碼都會返回某個值
單引號表示直接解釋
雙引號包含的字串會進行字串替換
編程模型
Ruby 是一門純物件導向語言。從下面的例子就可以看出來:
irb(main):001:0> 233
=> 233
irb(main):002:0> 233.class
=> Fixnum
irb(main):003:0> 233 + 233
=> 466
irb(main):004:0> 233.methods
=> [:to_s, :inspect, :[email protected], :+, :-, :*, :/, :div, :%, :modulo, :divmod, :fdiv, :**, :abs, :magnitude, :==, :===, :<=>, :>, :>=, :<, :<=, :~, :&, :|, :^, :[], :<<, :>>, :to_f, :size, :bit_length, :zero?, :odd?, :even?, :succ, :integer?, :upto, :downto, :times, :next, :pred, :chr, :ord, :to_i, :to_int, :floor, :ceil, :truncate, :round, :gcd, :lcm, :gcdlcm, :numerator, :denominator, :to_r, :rationalize, :singleton_method_added, :coerce, :i, :[email protected], :eql?, :remainder, :real?, :nonzero?, :step, :quo, :to_c, :real, :imaginary, :imag, :abs2, :arg, :angle, :phase, :rectangular, :rect, :polar, :conjugate, :conj, :between?, :nil?, :=~, :!~, :hash, :class, :singleton_class, :clone, :dup, :taint, :tainted?, :untaint, :untrust, :untrusted?, :trust, :freeze, :frozen?, :methods, :singleton_methods, :protected_methods, :private_methods, :public_methods, :instance_variables, :instance_variable_get, :instance_variable_set, :instance_variable_defined?, :remove_instance_variable, :instance_of?, :kind_of?, :is_a?, :tap, :send, :public_send, :respond_to?, :extend, :display, :method, :public_method, :singleton_method, :define_singleton_method, :object_id, :to_enum, :enum_for, :equal?, :!, :!=, :instance_eval, :instance_exec, :__send__, :__id__]
看出來了嗎,ruby 中一切皆為對象,比方說數字就是 Fixnum 類型的對象,我們也可以用 . 來調用對象的各種方法。
判斷
我們同樣可以通過例子來研究研究。
大家看了以上的介紹對ruby程式設計語言有了一定的瞭解嗎?可以從這幾個知識點,關注點瞭解到ruby程式設計語言與其他語言的不同,也知道了ruby語言的特色。想瞭解更多ruby程式設計語言,可以搜尋麥子學院,裡面有更多ruby視頻教程。
ruby教程:如何快速入門ruby程式設計語言