用 strace 跟踪一下
JIT 是自动生成 C 代码再编译成可执行文件比如 dll 或 so 等。
Here is a diagram showing the MJIT organization:
_______
|header |
|_______|
| MRI building
--------------|----------------------------------------
| MRI execution
|
_____________|_____
| | |
| ___V__ | CC ____________________
| | |----------->| precompiled header |
| | | | |____________________|
| | | | |
| | MJIT | | |
| | | | |
| | | | ____V___ CC __________
| |______|----------->| C code |--->| .so file |
| | |________| |__________|
| | |
| | |
| MRI machine code |<-----------------------------
|___________________| loading
ruby -e "[*0..5, *2..8, *3..12, 2, 2, 2, 2].each{|i| puts ' '*(40-2*i-i/2)+'*'*(4*i+1+i)}"
主干网的 ipv6 其实已经通了,只是某几台路由器还不支持。
什么是 cache 数据库?
哦,那楼主应该用 @@c 类变量,因为 self.f 是类方法。 不是实例方法。
class << C 这个是什么意思? 是不是相当于
class C
def f
@c
end
end
Array 值分隔符 只能是逗号吧?
Happy Coding +1
单精度浮点数的有效位数是 7 位。 双精度浮点数的有效位数是 16 位。
哦谢谢,我用 pry 的 show-doc OpenSSL::Cipher::Cipher,没显示。
原来这么简单啊,你是怎么找到答案的?
[6] pry(main)> ("00:01".."12:34").to_a.size
=> 1234
其它语言应该都是这样吧? https://play.crystal-lang.org/#/r/5ixe 可以统计一下
v+=1
v-+1
max(n, i) 最终会调用什么?
block 就是一个匿名函数吧?
hash = Hash.new
%w(cat dog wombat).each_with_index { |item, index|
hash[item] = index
}
hash #=> {"cat"=>0, "dog"=>1, "wombat"=>2}
这个算不算 enum ? https://ruby-doc.org/core-2.5.1/Enumerable.html#method-i-each_with_index
是的,windows 下面要有后缀才能打命令。
常量和变量的区别是什么?
C:\Users\Administrator>where gem
e:\Ruby23\bin\gem.cmd
e:\Ruby23\bin\gem
e:\Ruby23\bin\gem.bat
C:\Users\Administrator>head e:\Ruby23\bin\gem.bat
@ECHO OFF
IF NOT "%~f0" == "~f0" GOTO :WinNT
@"ruby.exe" "e:/Ruby23/bin/gem" %1 %2 %3 %4 %5 %6 %7 %8 %9
GOTO :EOF
:WinNT
@"ruby.exe" "%~dpn0" %*
C:\Users\Administrator>head e:\Ruby23\bin\pry.bat
@ECHO OFF
IF NOT "%~f0" == "~f0" GOTO :WinNT
@"e:\Ruby23\bin\ruby.exe" "e:/Ruby23/bin/pry" %1 %2 %3 %4 %5 %6 %7 %8 %9
GOTO :EOF
:WinNT
@"e:\Ruby23\bin\ruby.exe" "%~dpn0" %*
这 2 个 bat 文件内容差不多
#!/usr/bin/env ruby
# max.rb 文件内容
fn=ARGV[0]
puts "file: #{fn} "
n=open(ARGV[0]).read.scan(/[\.\d]+/im).map{|x| x.to_f}.sort[-1]
puts "max val is: #{n} "
编辑 max.rb,把 max.rb 复制到操作系统的 PATH 目录,文件名改为 max, 后缀去掉,就可以用命令行执行 max . 其实 gem 也是一个 ruby 脚本:
▶ type gem
gem 已被录入哈希表 (/usr/bin/gem)
kkar4 -bash kk /tmp/RDP 15:51:05
▶ file /usr/bin/gem
/usr/bin/gem: Ruby script, ASCII text executable
kkar4 -bash kk /tmp/RDP 15:51:09
▶ head /usr/bin/gem
#!/usr/bin/env ruby
#--
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
# All rights reserved.
# See LICENSE.txt for permissions.
#++
require 'rubygems'
require 'rubygems/gem_runner'
require 'rubygems/exceptions'
▶ chmod +x max.rb
kkar4 -bash kk /tmp/RDP 15:59:31
▶ cp max.rb max
kkar4 -bash kk /tmp/RDP 15:59:34
▶ PATH=$PATH:`pwd`
kkar4 -bash kk /tmp/RDP 15:59:59
▶ max file.txt
file: file.txt
max val is: 9999999999999999
不写括号,更接近人类语言
猜测只能国内,试试和国外收发
Ruby 更合适。更接近人类语言。计算的发展目标之一。
增加语言复杂度,不好。
分那么细,增加语言复杂度。 我觉得 Symbol 也没必要,全部用 String 就行。Fixnum 和 Float 也没必要,合并到 Numeric 就行。
货币就是用来交换商品的,如果货币发行量不多,必定会提升货币本身的价值和购买力。比特币的发行量是一个固定的算法。
Ruby QuickRef http://www.zenspider.com/ruby/quickref.html
有个 qref 糖列表,大约 2 页