每种职业不同. 环卫工人,日晒雨淋的,肯定要提前退休. 化工厂,天天接触吸入化工元素. 保安,公交司机 程序员 销售员 高中老师 公关 医生 记者 广告策划师 快递员 警察
***************************************************************************************
*********** icu required (brew install icu4c or apt-get install libicu-dev) ***********
***************************************************************************************
*** extconf.rb failed ***
看这个提示,要安装 libicu 的开发包
就是 IDE 不够智能,不够完美 . 但是开发足够智能的 IDE 也是很难的。
def square(x) = x * x
一行代码就能解决的事,为什么要去定义成方法,为什么要去改变语法造成版本不兼容?看看 C++ 的语法,真让人炸毛。
class String
def palindrome?
a=self.gsub(/[^\w]/,'').upcase
a.reverse == a
end
end
p "1234321".palindrome? # true
p "123321".palindrome? # true
p "122321".palindrome? # false
p "223321".palindrome? # false
p "11/11/11 11:11".palindrome? # false. 应该是true
p "A man, a plan, a canal – Panama".palindrome? # false. 应该是true
class String
def palindrome?
self.reverse == self
end
end
p "1234321".palindrome? # true
p "123321".palindrome? # true
p "122321".palindrome? # false
p "223321".palindrome? # false
自己学,慢慢体会. Ruby 最接近 Perl Java Python Golang Lua . 其它语言区别太大,不用比的。
缺点是只能用吸尘器清理。
Java 的 HashMap(8 以后)的链表树化是通过 红黑树实现
Java 的 TreeMap 是通过红黑树实现
Nginx 是用红黑树管理 timer 等
Linux 进程调度用红黑树管理进程控制块
json 格式本身没有规定逗号后面能不能多加个空格。加 2 个空格也是符合语法的。
没有耕坏的地,只有累坏的牛。
可读性永远是第一位的,人机交流的目标是简单易懂。
实际使用中,把 "hello" 转换为数字的场景有吗?如果有,也应该转换为 0,而不应该显示错误。
语言语法的添加和修改,都是毁灭性的. 可以发明一个新语言,比如 Crystal,也可以做一个语言的子集. 如果像 C++ 那样,不停添加新语法,那就太魔幻了,不适合人类。
|x| 这个不是原编程。语言特性越多,学习曲线越复杂,最好的语言是自然语言,比如英文,汉语,计算机人机交流是最好的语言。
Ruby 的元编程比其它语言优雅。
一行不超过 79 个字符
2016 年...
他们怎么想的,这还正常啊。看了最后一行,状态是 open 的,估计还在修。
https://github.com/rubygems/rubygems/issues/494#issuecomment-16973114
https://github.com/tuna/issues/issues/374
这里有个坑:
Please consider reverse-proxying https://api.rubygems.org/api/v1/dependencies at /rubygems/api/v1/dependencies so that dependency lists are fetched through this API, instead of calculated locally, by downloading and parsing all gemspec.rz files.
For your reference, here is a Caddyfile that I use to test the feasibility of the reverse proxy:
localhost:8081
log stderr
proxy /rubygems https://mirrors.tuna.tsinghua.edu.cn {
except /rubygems/api
}
proxy /rubygems/api https://api.rubygems.org {
without /rubygems
}
(I am fully aware of the "we don't do reverse proxy" policy of this site, so this is only filed in the hope of being useful to all RubyGems mirror users)
命令是:
gem install nokogiri -VN
兼容 linux 和苹果系统:
require "url"
require "json"
url = URL.new("https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5&callback")
response = url.get.json
data = JSON.parse response["data"]
puts data["lastUpdateTime"]
def show_data(data)
for item in data["areaTree"]
s=(item["name"].to_s + "累计确诊:" + item["total"]["confirm"].to_s + "例,死亡:" + item["total"]["dead"].to_s + "例,治愈:" + item["total"]["heal"].to_s + "例;")
if Gem.win_platform?
puts s.encode("gbk")
else
puts s
end
end
end
show_data(data)
如果有依赖呢?
其实就是什么文章都能写上去,国外没有做限制. 国内可以做个限制就没事了。
被墙了,要不再山寨一个?
简单,可以先定义一个空函数:
#1.rb
def f(x)
puts " f()未定义"
end
再定义实际使用的函数:
#2.rb
def f(x)
puts "f() 已定义"
end
然后在 3.rb 里,require '2.rb' 就可以了。
require 'digest'
s = '{"Limit": 1, "Filters": [{"Values": ["\u672a\u547d\u540d"], "Name": "instance-name"}]}'
print Digest::SHA2.new(256).hexdigest(s).downcase
从语法讲,Ruby 简单多了
h={}
h['bj']=100;
h['sh']=200;
$key='bj'
print h[key]
因为网络不好,经常打不开相关的网站。 比如下载这个: https://rubyinstaller.org/downloads/ ,200MB 要花 4 小时。
我可以兼职,每天 1 小时。