Ruby on Rails学习笔记之Ruby基础 —— Part1 基本概念

文章目录

  • Part1 基本概念
    • 注释写法
    • 交互式编程
      • 启动
      • 退出
    • 脚本式编程
      • 运行
        • options
    • 内置函数
      • `puts`
      • `gets`
    • 变量
      • 局部变量
      • 全局变量
      • 常量
      • 伪变量
      • 变量访问
    • 方法
      • 语法
        • 参数
          • 无参数
          • 有参数
          • 默认参数
          • 可变参数
        • 函数调用
          • 无参数调用
          • 有参数调用1
          • 有参数调用2
      • 返回值


Part2 数据类型
Part3 迭代器


Part1 基本概念

  • 非字符串代码中的空白字符会被忽略

  • 分号和换行符解释为语句结尾,运算符及\解释为语句延续

  • 标识符大小写敏感,包括字母、数字和_

注释写法

# 注释写法一 : 单行注释
=begin
注释写法2 : 多行注释
=end

交互式编程

控制台程序IRb,使用IRb Shell来逐行执行代码

启动

$ irb
$ irb --simple-prompt

退出

$ exit

脚本式编程

Ruby文件扩展名为.rb

运行

$ ruby [options] [.] [file] [arguments]

options

选项 描述
-a 与 -n 或 -p 一起使用时,可以打开自动拆分模式(auto split mode)。请查看 -n 和 -p 选项
-c 只检查语法,不执行程序
-C dir 在执行前改变目录(等价于 -X)
-d 启用调试模式(等价于 -debug)
-F pat 指定 pat 作为默认的分离模式($;)
-e prog 指定 prog 作为程序在命令行中执行。可以指定多个 -e 选项,用来执行多个程序
-h 显示命令行选项的一个概览
-i [ ext] 把文件内容重写为程序输出。原始文件会被加上扩展名 ext 保存下来。如果未指定 ext,原始文件会被删除
-I dir 添加 dir 作为加载库的目录
-K [kcode] 指定多字节字符集编码。e 或 E 对应 EUC(extended Unix code),s 或 S 对应 SJIS(Shift-JIS),u 或 U 对应 utf-8,a、A、n 或 N 对应 ASCII
-l 启用自动行尾处理。从输入行取消一个换行符,并向输出行追加一个换行符
-n 把代码放置在一个输入循环中(就像在 while gets; … end 中一样)
-0[octal] 设置默认的记录分隔符($/)为八进制。如果未指定 octal 则默认为 \0
-p 把代码放置在一个输入循环中。在每次迭代后输出变量 $_ 的值
-r lib 使用 require 来加载 lib 作为执行前的库
-s 解读程序名称和文件名参数之间的匹配模式 -xxx 的任何参数作为开关,并定义相应的变量
-T [level] 设置安全级别,执行不纯度测试(如果未指定 level,则默认值为 1)
-v 显示版本,并启用冗余模式
-w 启用冗余模式。如果未指定程序文件,则从 STDIN 读取
-x [dir] 删除 #!ruby 行之前的文本。如果指定了 dir,则把目录改变为 dir
-X dir 在执行前改变目录(等价于 -C)
-y 启用解析器调试模式
–copyright 显示版权声明
–debug 启用调试模式(等价于 -d)
–help 显示命令行选项的一个概览(等价于 -h)
–version 显示版本
–verbose 启用冗余模式(等价于 -v)。设置 $VERBOSE 为 true
–ydebug 启用解析器调试模式(等价于 -y)

内置函数

puts

输出自带换行

  • 如果输出内容为数组参数,则每一个元素占一行

gets

获取输入,以换行结束一次输入,返回值为字符串

变量

局部变量

局部变量以小写字母或_为开头

全局变量

全局变量以$开头,未初始化的全局变量的置为nil

$global_variable = 'Name'

def say_hello
    puts "Hello, #{$global_variable}!"
end

say_hello

常量

常量以大写字母开头

不允许在方法中定义常量,无论是否引用都会报错

不允许对常量重新赋值

伪变量

有着局部变量的外观(即不是以$或者大写字母开头的变量),但行为却是常量,不能对伪变量赋值

  • self: 当前方法的接收器对象。
  • true: 代表 true 的值。
  • false: 代表 false 的值。
  • nil: 代表 undefined 的值。
  • __FILE__: 当前源文件的名称。
  • __LINE__: 当前行在源文件中的编号。

变量访问

通过#{variable_name}来访问任何变量或者常量

变量赋值两种方法

$global_var1 = $global_var2
#{$global_var1} = #{$global_var2}

方法

方法命名要求:小写字母开头 ❌大写字母开头识别为变量名❌

语法

参数

无参数
def method_name
    puts "Hello"
end
有参数
def method_name(arg1, arg2)
    puts "Hello, #{arg1}, #{arg2}"
end
默认参数
def method_name(arg1, arg2 = value2)
    puts "Hello, #{arg1}, #{arg2}"
end
可变参数
def method_name(*arg)
    puts "参数个数:#{arg.length}"
end

函数调用

无参数调用
method_name
有参数调用1
method_name(arg1, arg2)
有参数调用2
method_name arg1, arg2, arg3

返回值

Ruby中一切皆表达式,一切表达式都有返回值

每个方法默认返回值为最后一个语句的值

def func1
    a = 100
    b = 200
end
# func1返回值为200
def func2
    a = 100
    b = 200
    return a, b
end
# func2返回值为[100, 200]

你可能感兴趣的:(学习笔记,ruby,ruby,on,rails)