Ruby的優雅(C 版)

2021-09-01 08:21:31 字數 1068 閱讀 2697

相比於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...