博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ruby基础语法
阅读量:6397 次
发布时间:2019-06-23

本文共 2298 字,大约阅读时间需要 7 分钟。

  hot3.png

首发:

学不同语言,常将它们的基础语法搞混,例如if后面有没有(),后面是then还是:还是{,结尾是end还是}……

这种事情毫无技术含量又毫无乐趣可言,但极大地影响流畅度,所以这次再看ruby语法,决定把基础语法记下来,方便以后查看。

代码放到了,目前只有ruby,待以后用别的语言时再陆续添加。

内容如下,都是最基础的用法,需要时一看就明白。

#参考:《Ruby完全自学手册》第三章、第四章#常量大写字母开头,变量小写字母开头CHANG_LIANG = 1bian_liang = 2bian_liang = "2"#弱类型##分支控制#ifif 2 > 1 then    #elsif 2>2 then    #else    #end#if后置puts "if后置" if 2 > 1#unlessunless 2 > 1 then    #else    #end#casecase 1+1when 2 then    #when 3 then    #else    #end##循环控制#whilewhile 1>2    #end#untiluntil 1<2    #end#forfor i in (1..3)   #end#foreach的另一种写法(1..3).each do |i|    #可以用break和next控制,next相当于其他语言的continueend##面向对象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的模块方法"    endend#模块定义的end#使用myClass = MyModule::MyClass.new#实例化对象myClass.myAttr = "实例变量的值"#为实例变量赋值myClass.myMethod#调用实例方法#动态添加方法def myClass.newMethod    puts "动态添加的方法"endmyClass.newMethod#加载另一个文件中声明的模块中的类load 'ruby_another_module.rb'anotherClass = AnotherModule::AnotherClass.new#另一个文件中声明的对象anotherClass.print#调用其方法#混入class UseMixin    include MyModule    extend MyModuleendUseMixin.new.moduleMethod#include语句的作用,成为类的实例方法UseMixin.moduleMethod#extend语句的作用,成为类的类方法##代码段def blockMethod#调用代码段的方法,其中yield表示运行代码段    yieldendblockMethod {puts "匿名代码段"}#带参数的代码段def blockMethodWithParam(arg, &b)#定义显式使用代码段的函数    b.call argendblock = 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

转载于:https://my.oschina.net/u/866216/blog/542767

你可能感兴趣的文章
全世界最好的编辑器VIM之Windows配置(gvim)[未测试]
查看>>
2018年你需要知道的13个JavaScript工具库
查看>>
当你点击按钮的时候如何设置其他按钮不可点击
查看>>
spring 高级装配
查看>>
【合集】parasoft Jtest 从安装到使用教程合集,收藏推荐!
查看>>
Python Pygame库的学习之路(1)
查看>>
信息安全与Linux系统
查看>>
Ubuntu安装mysql
查看>>
SpringCloud 微服务 (十四) 服务网关 Zuul 过滤器(Pre&Post)
查看>>
代理设计模式
查看>>
初识Shiro
查看>>
在Developerkit开发板上运行blink例程
查看>>
企业级性能、安全可靠 阿里云发布企业级大数据平台开发者版
查看>>
Spring Boot使用过程小记(一)--加载自定义的Spring XML
查看>>
Git分支关联远程GitHub分支出错
查看>>
设计模式--桥接模式
查看>>
linux笔记之进程信息查看工具
查看>>
django 自定义分页器
查看>>
Oracle命令
查看>>
转载-没有IE就没有伤害!浏览器兼容性问题解决方案汇总
查看>>