相比於c#,ruby顯得灰常的優雅。
設計上的:
1 不需要引用必須依賴的包
c#的using system,在ruby的世界裡是不存在的,沒有必要反覆強調這些規則。
2 非核心依賴包不需要重複引用
如果有2個類a和b,都依賴於c,c#必須在a和b中都宣告引用c。若是ruby,只需要在a或者b中宣告一次即可,當然也可以在類似main的入口宣告,這樣的話a和b都不用宣告了。
3 完全物件導向
任何型別都是物件,很符合人的思維習慣。
資料型別轉換
迭代常用動作
4 自帶了第三方包依賴管理工具
語言規則:
1 變數不需要顯示定義
例如宣告乙個字串並賦值,s="123",不需要寫成string s="123"。但是,未定義的變數直接使用是會報錯的,這個就很智慧型了。
2 語法上的:
1 呼叫方法不用加()
2 行末不用加;
3 獲取字串的第n個字元
s = "lby_string"
puts s[n]
不需要用charat的方法,直接當成陣列來用吧。
4 取第乙個和最後乙個元素
a=[1,2,3,4]
puts a.first
puts a.last
5 讀取檔案
f=file.open("test.txt")
f.each_line do |l|
puts l
end6 判斷是否為空
t.nil?
c#可能會這樣寫: if(t==null){}
7 求長度
a=[1,2,3,4]
puts a.size
puts a.size()
puts a.length
puts a.length ()
puts a.count
puts a. count ()
可以隨心所欲,不必知道長度是乙個屬性還是乙個方法。
8 轉行型別
把乙個字串轉行成整型,c#這樣寫:convert.toint32(s),ruby:s.to_i。
關於排序 ruby版練手
冒泡 選擇排序 快排兩種寫法,第一種用ruby的partition,簡短,第二種為常規快排寫法 arr1 4,6,2,7,1,3,8,9,5,0 arr2 8,12,4,14,2,6,16,18,10,20 arr3 8,12,4,14,2,6,16,18,10,20 arr4 8,12,4,14,...
宋詞分析改編版(ruby)
上一次我寫的 url 宋詞分析 url 是在windows環境下的,預設編碼是gbk 936 所以在處理utf 8的時候,需要轉換為gbk,再進行處理分析。不過現在已經是ruby1.9版了,那麼就改一下,在uft 8下處理程式,主要就是把原宋詞檔案內容從gbk編碼為utf 8,再進行相應的處理,do...
C 列舉最優雅的用法
public enum abilitylevel 拓展方法,或者說是重寫tostring 方法 summary provides globalization for see cref abilitylevel enum.summary public static class abilitylevel...