Ruby学习笔记

xiaoxiao2021-02-27  304

ruby:动态程式语言(无需编译) //动态语言还有python、php、perl //静态有c、c++、java(需要编译)作者:marz(日本)官网:http://ruby-doc.org/ ##数据类型整数、浮点数 = * - /字符串(在内容中的’单引号前加上/可防止溢出) ###数据类型内建转化api: .to_f转化整数为浮点型 to_s转为字符转 to_i转为整数 ###更多字符串方法 reverse倒序 length长度 upcase大写 downcase小写 ###字符串内插 ```verb = "work"where = "office"puts 'I #{verb} at the #{where}' ``` ### 其他方法- .abs绝对值- .class获取对象类型- 5.times do end 重复执行循环体5次> **ruby中所有东西都是对象(object),可以通过 . 来对对象使用方法**- 变量- 常数(大写开头)- nil(未定义) ``` nil.class #nillClass nil.nil #nil 42.nil? # false nil == nil #true false == nil #false```- 注解 单行:# 多行: =begin ...... =end- 数组Array ``` a = [ 1,“cat”,3.14 ] puts a[0] #1 puts a.size #3 a[2] = nil #向 a[2] (赋值) puts a.inspect # 输出[ 1, "cat" , nil ]```- 数组相关方法 ```//数组最后添加成员: a.push("") 同 a <<"white"//数组转字符串: a.join(" ; ") #输出 1; cat; 3.14//字符串转数组: "a,b,c,d,e".splite(",") #输出["a","b","c","d","e"]``` ###遍历循环 ```languages=['Ruby', 'javascript', 'Perl']languages.each do |lang| puts 'I Love' + lang + '!'end# 输出# I Love Ruby!# I Love javascript!# I Love Perl!``` ###hash 用键名和值对应起来的数据结构形式 ```config = {"foo" => 123, "bar" => 456}puts config["foo"] # 输出123``` ###字符串符号symbol一个唯一且不会变动的识别名称以冒号开头 eg: " :foo "**和字符串的区别**- 只有唯一的存储空间,不会浪费额外的空间,而同样字符串使用时每次都会分配新的存储空间- 无法使用字符串的方法来操作,如.reverse等** 用symbol作为key来存储hash** ```config = { :foo => 123, :bar => 456}puts config[:foo] # 输出123//hash赋值config[:foo] = 999 puts config[:foo] # 输出999```config = { foo: => 123, bar: => 456}是symbol的简洁写法**遍历哈希** ```config = { foo: => 123, bar: => 456}config.each do |key, value| puts "#{key} is #{value}" #字符内插end# 输出 foo is 123 bar is 456``` ###控制流程- 比较:>, <, ==, >=, <=, != &&, ||- 判断:if ... elsif ... else ... end- 三元运算:condtion ? result1 : result2- case ``` case sth when ... when ... else ...```- 循环判断 ```i = 0while ( i < 10 ) i+= 1 next if i % 2 ==0 #跳过接下来的代码重新执行while puts iend# 输出1,3,5,7,9``` ```i = 0i += 1 util i>10puts i# 输出 11``` ```i = 0loop do i += 1 break if i>10 #跳出循环end# 输出 11```
转载请注明原文地址: https://www.6miu.com/read-3852.html

最新回复(0)