我也在纠结是学 ember 还是 ng,最后肯定都要学,但是从谁下手呢?本来我已经决定先搞 ng 的了,但是麻痹人家来个 2.0 全部重写不兼容 1.x,你说我学是不学?学 1.x 学完就过时没用了,学 2.0 吧还没出来。
流行度来说 ng 比 ember 高得多得多,也是我想先学它的原因,谁知道就给你来这么一手。
#14 楼 @hooooopo 果然是这样,谢谢指正。我测试了一下,带等号的方法只能接受一个参数,这应该也是个特殊处理。这种方法的返回值永远是接受的那个参数,我猜测。
def current_user=(user, another)
@current_user = user + another
nil
end
current_user=("test", "other")
=>
SyntaxError: syntax error, unexpected ',', expecting ')'
current_user=("test", "other")
^
from /Users/blacktulip/.rvm/rubies/ruby-2.2.1/bin/irb:11:in `<main>'
感觉楼上的回答都没有针对楼主的问题。
def current_user=(user)
@current_user = user
end
current_user = some_value
先理解方法签名:def current_user=(user)
这行其实意思是 def set_current_user(user)
,只不过方法名里面有个等号,这个方法名并不是 current_user
然后一个等号有什么特殊含义,而是整个方法名就是 current_user=
。
虽然方法名里面的等号并无特异之处,但是在调用的时候 Ruby 解释器会有一些特殊的处理。
这个方法定义后,一旦出现这样的赋值:
current_user = some_value
Ruby 解释器会寻找 current_user=
方法,找到了就会调用之。你说 current_user
和 =
中间有个空格,方法名对不上。没错,这就是刚说的特殊处理。赋值语句首先会去找一个 赋值号左侧内容
=
这个名字的方法,这个方法一般称为 setter
,找到了就调用,找不到,就创建一个名称为赋值号左侧内容
的变量进行赋值,也就是正常赋值。
如果不使用这个 Ruby 的约定,可以这样改写:
def set_current_user(user)
@current_user = user
end
set_current_user(some_value)
所以说我大 JS 千秋万载一桶浆糊
中医一般不会让你割东西的
看到楼主贴的那张图已经值回票价
options = {
url: "注意!结尾必须写逗号"
,host: "如果不写逗号,那么会报错"
,customer: {
name: "逗号很小, 不明显, 不小心删掉了,都很难发现"
,number: "结尾还有很多括号, 好崩溃呀"
,bills: [
{number: "苦逼", memo: "苦逼苦逼苦逼苦逼"}
,{number: "苦逼", memo: "苦逼苦逼苦逼苦逼"}
,{number: "苦逼", memo: "苦逼苦逼苦逼苦逼"}
]
}
}
这个我也不清楚...
service mysql restart 行不行 (mysql 后面不加 d )?你的 mysql 是怎么安装上去的?
实在不会重启 mysql,你就整台服务器 reboot 好了
mysql -u root -p -e "set global net_buffer_length=1000000; set global max_allowed_packet=1000000000;"
然后重启 mysqld
#10 楼 @xiaoronglv 那还不如用 PHP
反对,我觉得标配 8GB 内存足以应付 RubyMine 了。CPU 能 Turbo 到 2.4 应该没问题。此本为码农量身定做。
#9 楼 @zyjloveher 只能用 each
Linux 放虚拟机里面用就好了啦
@flowerwrong @saiga @lyfi2003 请问这个 page:load , page:change 事件是 turbolinks 特有的对吧?
@flowerwrong @saiga @lyfi2003 谢谢各位指点。
module Enumerable
def i_each_slice(n)
raise "invalid slice size" if n <= 0
result, i = [], 1
self.each do |ele|
index = (i / n.to_f).ceil
result[index].nil? ? result[index] = [ele] : result[index] << ele
i += 1
end
result[1..-1].each { |ele| yield ele }
end
end
['a', 'b', 'c', 'd', 'e', 1, 2, 3, 4, 5].i_each_slice(3) { |i| p i }
# =>
# ["a", "b", "c"]
# ["d", "e", 1]
# [2, 3, 4]
# [5]
还可以再短点不过就要略微影响可读性了
discuz......
#19 楼 @flowerwrong 估计说的是最底下那两本
#4 楼 @shallmentmo 原来是这样
你写错了,外面的 loop 拆掉
hash_table.each {|k, v| puts(k, v)}
这就是了