计算用程序,别用数据库。
用 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