(持续更新...)Ruby 杂记

1、在RUBY里面,哈希与矩阵是指针传递的,而整形是值传递

2、send函数

if respond_to?("a_func")	#用这个方法就可以send函数了
	puts "FIND!!!"
	send("a_func",入参1,入参2)
else
	puts "NO FIND"
end

3、 puts “A”.ord #输出ASCII码

4、Ruby类,一旦出现如: a = Class.new, 那么a就不是指向原来的指针了。编程时尽量规避这些意义含糊的情况

# Definition for a binary tree node.
# class TreeNode
#     attr_accessor :val, :left, :right
#     def initialize(val = 0, left = nil, right = nil)
#         @val = val
#         @left = left
#         @right = right
#     end
# end
# @param {TreeNode} root
# @param {Integer} val
# @return {TreeNode}
# Leetcode 701
def insert_into_bst(root, val)
    b = TreeNode.new(1919)
    b.left = TreeNode.new(810)  # 可以
    c = b.left
    #c = TreeNode.new(99999)    # 不能
    c.val = 99999               # 可以

    return b
end

5、Ruby中,哈希的key可以是哈希,由哈希的内容所决定而不是地址。因此同一个内容的哈希作为key的映射是唯一的。

6、想要传入一个方法(函数指针):
method(:a_func)
调用时xxx.call(入参1,入参2…),但这种方法貌似只能调本作用域内(模块)的方法
若想跨作用域调用,另一种方法是:
lambda{|x1,x2| return ::MyModule::a_func(x1,x2)}
lambda表达式

7、Ruby的三目运算符 ? :
案例:

puts 1 < 2 ?  "One is less than two!" : "One is not less than two."
# 而非 1 < 2 ? puts   "One is less than two!" : puts  "One is not less than two."

另一案例:

(x = a.pop) ?  quick_sort(a.select{|i| i <=x }) + [x] + quick_sort(a.select{|i| i > x}) : []

这里需要注意 [ ].pop.class = NilClass, 以后可以利用这个特性

10、puts ‘-’ * 30
x = [1, 2, 3]
a, b = x #默认会把数组中的值依次赋值给 a ,b
puts a
puts b
#output
1
2

11、puts ‘-’ * 30
x = [1, 2, 3]
a, b = x #这里a会接受第一个元素 b用了号 表示接受剩下所有的元素
puts a
p b
#output------------------------------
1
[2, 3]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值