在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
学不同语言,常将它们的基础语法搞混,例如if后面有没有(),后面是then还是:还是{,结尾是end还是}。 这种事情毫无技术含量又毫无乐趣可言,但极大地影响流畅度,所以这次再看ruby语法,决定把基础语法记下来,方便以后查看。 代码放到了这里,目前只有ruby,待以后用别的语言时再陆续添加。 内容如下,都是最基础的用法,需要时一看就明白。 #参考:《Ruby完全自学手册》第三章、第四章 #常量大写字母开头,变量小写字母开头 CHANG_LIANG = 1 bian_liang = 2 bian_liang = "2"#弱类型 ##分支控制 #if if 2 > 1 then # elsif 2>2 then # else # end #if后置 puts "if后置" if 2 > 1 #unless unless 2 > 1 then # else # end #case case 1+1 when 2 then # when 3 then # else # end ##循环控制 #while while 1>2 # end #until until 1<2 # end #for for i in (1..3) # end #foreach的另一种写法 (1..3).each do |i| #可以用break和next控制,next相当于其他语言的continue end ##面向对象 module MyModule#定义模块 #定义类 class MyClass#类名首字母大写 attr_accessor :myAttr#定义实例变量 def initialize @myAttr2 = "@定义的实例变量" end public#访问控制级别public/protected/private def myMethod#定义实例方法 puts "在实例方法中输出" + myAttr + @myAttr2 end end #继承 class MySubClass < MyClass end #定义模块方法 def moduleMethod puts "MyModule的模块方法" end end#模块定义的end #使用 myClass = MyModule::MyClass.new#实例化对象 myClass.myAttr = "实例变量的值"#为实例变量赋值 myClass.myMethod#调用实例方法 #动态添加方法 def myClass.newMethod puts "动态添加的方法" end myClass.newMethod #加载另一个文件中声明的模块中的类 load 'ruby_another_module.rb' anotherClass = AnotherModule::AnotherClass.new#另一个文件中声明的对象 anotherClass.print#调用其方法 #混入 class UseMixin include MyModule extend MyModule end UseMixin.new.moduleMethod#include语句的作用,成为类的实例方法 UseMixin.moduleMethod#extend语句的作用,成为类的类方法 ##代码段 def blockMethod#调用代码段的方法,其中yield表示运行代码段 yield end blockMethod {puts "匿名代码段"} #带参数的代码段 def blockMethodWithParam(arg, &b)#定义显式使用代码段的函数 b.call arg end block = Proc.new{|x| puts x}#定义非匿名代码段 blockMethodWithParam("非匿名代码段", &block)#使用非匿名代码段 blockMethodWithParam("也可以这样使用"){|x| puts x} ##异常处理 begin #正常代码运行的地方 rescue Error#相当于其他语言的catch #进行一些调整 retry#重新尝试执行 ensure #相当于其他语言的finally,无论如何都会运行的地方 end ##基本类型 #整数 a=123_456#可以加下划线 b=0b101010#二进制 c=0123#八进制 d=0xaa#十六进制 e=?a#ascii码 puts d #浮点数略 #字符串 str = "hello, world" str = %{你好, "world"}#方便含有引号的内容 str[0] = "我" puts str #符号略 #区间 (1..3).each{|a| puts a} #数组 [1,2,3].each{|a| puts a} #字典 map = {"键甲"=>"键甲的值", "键乙"=>"键乙的值"} puts map["键甲"] #正则表达式 "ab12cd".scan(/\d/){|m| puts m}#正则表达式字面量 puts /\d/.match("ab12cd")[0]#match方法 长期欢迎项目合作机会介绍,项目收入10%用于酬谢介绍人。新浪微博:@冷镜,QQ:908789432。 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论