Ruby01: Beginner
中整個早上都忙著作業,看來是假期懶了一下現在現眼報吧哈哈。在上課之前發一下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的更多相关文章
- A Beginner's Guide to Paxos
Google Drive: A Beginner's Guide to Paxos The code ideas of Paxos protocol: 1) Optimistic concurrenc ...
- Beginner's Guide to Python-新手指导
Refer English Version: http://wiki.python.org/moin/BeginnersGuide New to programming? Python is free ...
- [我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之纹理Textures
[我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之纹理Textures 本篇分享一下第6个已完工的视频,即<beginner Graphics ...
- [我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之网格Meshes
[我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之网格Meshes 本篇分享一下第5个已完工的视频,即<beginner Graphics – ...
- [我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之材质了解Materials
[我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之材质了解Materials 既上一篇分享了中文字幕的灯光介绍Lights后,本篇分享一下第3个已完工 ...
- [我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之灯光介绍Lights
[我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之灯光介绍Lights 既上一篇分享了中文字幕的摄像机介绍Cameras后,本篇分享一下第2个已完工的 ...
- [我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之摄像机介绍Cameras
[我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之摄像机介绍Cameras 最近得到一些Unity官方视频教程,一看全是纯英文的讲解,没有任何字幕或者 ...
- 翻译:Lisp Style Tips for the Beginner - Heinrich Taube
原文:Lisp Style Tips for the Beginner 本篇文章是一篇非正式的摘要,旨在帮助新手写出高效.易读的Lisp代码. 1 赋值 1.1 避免使用eval.赋值是Lisp内 ...
- A Beginner's Guide To Understanding Convolutional Neural Networks(转)
A Beginner's Guide To Understanding Convolutional Neural Networks Introduction Convolutional neural ...
随机推荐
- DataTable多线程操作报错情况
最近在写一个http接口时用了DataTable这个强大的利器,接口用浏览器跑起来没任何问题.当时也没考虑并发问题,后来用一个压力测试工具做大并发测试,1000+/s次速度测试.发现程序报错了.程序报 ...
- 枚举:enum——初写
入门的时候,针对某一字段状态的判断,一开始是在前端用if else 判断,有一些弊端:①把内置的code暴露给用户②if else最好不要超过3层③前端很长一段冗余判断不规范后改进使用枚举,在后台进行 ...
- java中的选择排序之降序排列
import java.util.Arrays;//必须加载 class Demo{ public static void main(String []args){ int[] arr={3,54,4 ...
- iOS 实现简单的毛玻璃效果
最近在整理导航栏的渐隐渐现效果,整理过程中偶然学会了图片的毛玻璃效果实现,很简单,不多说了,先上图看看效果对比, 这是原图, 这是加了效果后的,创建图片的代码就不上了,下面看下添加效果的代码: // ...
- linux 升级yum对应的python
这里记录一下linux 系统升级python对yum带来影响的解决办法 很多人在使用linux系统执行python任务的时候需要升级linux系统自带的python到高级版本.具体如何升级python ...
- XMLHttpRequest函数封装
XMLHttpRequest函数封装: function ajax(Url,sccuessFn,failureFn) { //1.创建XMLHttpRequest对象 var xhr = null; ...
- 简单粗暴的在vmware虚拟机中固定ip
虚拟机对于很多做测试的或者在学习测试中的人来说是位常客,经常会用到,但是虚拟机重启之后,很多人遇到虚拟机ip变化,很是头痛,我在学习过程中也遇到了这个问题,百度了很多办法,有些办法对于网络知识小白来说 ...
- Docker 的两类存储资源 - 每天5分钟玩转 Docker 容器技术(38)
我们从本章开始讨论 Docker 存储. Docker 为容器提供了两种存放数据的资源: 由 storage driver 管理的镜像层和容器层. Data Volume. 我们会详细讨论它们的原理和 ...
- CSS学习(页外引用还不懂)
CSS的语法结构为 选择符 {属性:值:} Selector {Property : Value:} 选择符:通配 *{....} , 元素 body{....} .h1{....}.p ...
- [TYVJ1728/BZOJ3224]普通平衡树-替罪羊树
Problem 普通平衡树 Solution 本题是裸的二叉平衡树.有很多种方法可以实现.这里打的是替罪羊树模板. 此题极其恶心. 前驱后继模块需要利用到rank模块来换一种思路求. 很多细节的地方容 ...