中整個早上都忙著作業,看來是假期懶了一下現在現眼報吧哈哈。在上課之前發一下Ruby 的首章,算是倉促的開始吧。

puts

puts "Once upon a time...

there's a self learn programmer...."   #okay

puts

"Once upon a time...

there's a self learn programmer...."  # output: *blank*

所以Ruby 是case-sensitive 咯?但在網上卻是這樣說:“Whitespace characters such as spaces and tabs are generally ignored in Ruby code, except when they appear in strings. ”(Tutorial Point)。所以,我們推斷 Ruby command 是不可以被分開的。

puts vs print

puts "Hello World"  #auto-append "\n"

print "I am in "    #not appending "\n"

print "campus"

output:

Hello World

I am in campus

啊,要去上課了,待續...

https://www.tutorialspoint.com/ruby/ruby_comments.htm

BEGIN{} & END{} Priorities

puts "in the middle, even written in front?! "

BEGIN{
puts "prog initialize"
}

END{
puts "just before prog termination"
}

output:

prog initialize

in the middle, even written in front?!

just before prog termination

Block commenting

=begin
block comment
instead of using #
=end

Class in Ruby

#in Ruby, everything treated as object

 #in Ruby, everything treated as object 

 $ monthly_customers = 0; 

 class Customer
     @@no_of_customers = 0;         #class var: static DM: all obj share 1 copy

     #member function in ruby class
     def initialize(id, name, addr)    #initialize: the reserved method for constructors
 #lowercase letters for method name
     @cust_id = id    #instance var == DM
     @cust_name = name
     @cust_addr = addr
     end 

     def modify_addr(addr2)
     ::Customer.instance_variable_get(:@cust_addr) = addr2    #modify instance var in same class
     end 

 end

 cust1 = Customer.new(", "Amy", "CauswayBay, HK")
 cust2 = Customer.new;
 p cust2.instance_variable_get(:@cust_id)    #nil: access uninitialized instance variable
 cust2.initialize(", "Timonthy", "Kwai Shing")
 p cust2.instance_variable_get(:@cust_id)    # "02"

差不多要上課了,待續...

https://www.tutorialspoint.com/ruby/ruby_variables.htm
https://www.tutorialspoint.com/ruby/ruby_class_case_study.htm

Global variable in Ruby

$global_variable = "Hello kitty"  #define a global var
class Class1
  def print
    puts "Global variable is: #$global_variable"    #access global var
  end
end   #to finish class definition

class1obj = Class1.new
class1obj.print   #no global fnc in ruby: fnc involved by obj only

Local variable, constant & execution order

$global_variable = "Hello kitty"  #define a global var
class Class1
  @@object_Counter = 1    #no space btw '@@' and identifier name
  FIXED_VALUE = 100     #const var starts with capital, local var starts with lower case 

  def print
    @local_var = "Hello global"
    puts "Global variable is: #$global_variable"    #access global var
    puts "Instance varable ~ DM: #@local_var"     #access instance var
    puts "Existing objects = #@@object_Counter"
  end

  puts "when local variable out of scope: #@local_var"
  # codes defined out of any class method executed first: ~ global MF

  puts "The constant in class : #{FIXED_VALUE}"     #access constant  

end   #to finish class definition

class1obj = Class1.new
class1obj.print   #no global fnc in ruby: fnc involved by obj only

output:

when local variable out of scope:
The constant in class : 100
Global variable is: Hello kitty
Instance varable ~ DM: Hello global
Existing objects = 1
=> nil

to be continued...

Ruby01: Beginner的更多相关文章

  1. A Beginner's Guide to Paxos

    Google Drive: A Beginner's Guide to Paxos The code ideas of Paxos protocol: 1) Optimistic concurrenc ...

  2. Beginner's Guide to Python-新手指导

    Refer English Version: http://wiki.python.org/moin/BeginnersGuide New to programming? Python is free ...

  3. [我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之纹理Textures

    [我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之纹理Textures 本篇分享一下第6个已完工的视频,即<beginner Graphics ...

  4. [我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之网格Meshes

    [我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之网格Meshes 本篇分享一下第5个已完工的视频,即<beginner Graphics – ...

  5. [我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之材质了解Materials

    [我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之材质了解Materials 既上一篇分享了中文字幕的灯光介绍Lights后,本篇分享一下第3个已完工 ...

  6. [我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之灯光介绍Lights

    [我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之灯光介绍Lights 既上一篇分享了中文字幕的摄像机介绍Cameras后,本篇分享一下第2个已完工的 ...

  7. [我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之摄像机介绍Cameras

    [我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之摄像机介绍Cameras 最近得到一些Unity官方视频教程,一看全是纯英文的讲解,没有任何字幕或者 ...

  8. 翻译:Lisp Style Tips for the Beginner - Heinrich Taube

    原文:Lisp Style Tips for the Beginner 本篇文章是一篇非正式的摘要,旨在帮助新手写出高效.易读的Lisp代码. 1 赋值   1.1 避免使用eval.赋值是Lisp内 ...

  9. A Beginner's Guide To Understanding Convolutional Neural Networks(转)

    A Beginner's Guide To Understanding Convolutional Neural Networks Introduction Convolutional neural ...

随机推荐

  1. Lambda(Linq)

    在谈到lambda表达式之前,首先要说一下委托,在下一章会详细介绍委托,在这里就是简单说明一下. 委托的关键字段delegate,声明委托 public delegate void NoReturnN ...

  2. tab切换实现方式1

    tab切换实现方式1: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...

  3. jq-toggle

    jq-toggle: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> &l ...

  4. Example001使用window对象打开窗口

    <!--实例001使用window对象打开窗口--> <script> <!--使用window对象打开窗口的语法格式如下--> <!--window.ope ...

  5. MySQL的四种事务隔离级别

    本文实验的测试环境:Windows 10+cmd+MySQL5.6.36+InnoDB 一.事务的基本要素(ACID) 1.原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做 ...

  6. HTML DOM元素关系与操作

    <html> <head><title>DOM元素关系与操作</title></head> <body> <!-- div ...

  7. JSON详细总结

    /** * Created by fa on 2016/3/15. */ var data = { name:"hello", children:[{ name:"chi ...

  8. [转]安装PIL时注册表中找不到python2.7

    如果在win7x64安装python2.7的时候选择了all user,则安装PIL的时候会显示找不到python. 解决办法:复制下面的代码到一个.py文件并运行: # # script to re ...

  9. [图形学] Chp14 GLU曲面裁剪函数程序示例及样条表示遗留问题

    样条表示这章已经看完,最后的GLU曲面裁剪函数,打算按书中的示例实现一下,其中遇到了几个问题. 先介绍一下GLU曲面裁剪函数的使用方法. 1 裁剪函数是成对出现的: gluBeginTrim和gluE ...

  10. WPF制作带明细的环形图标

    效果 明细用Popup实现的,录gif时,Popup显示不出来,不知道为什么,所以静态图凑合看吧 大体思路 图表使用Arc+Popup实现 图表分为两部分,一是环形部分,一是标注的明细部分. 环形部分 ...