Mushure megore rebudiriro
chikuru
- experimental
kutsigira kuenzanisa muenzaniso (Kuenzanisa muenzaniso ), iyo inokutendera kuti udzokorore pamusoro pechinhu chakapihwa uye kupa kukosha kana paine machisi kune pateni.nyaya [0, [1, 2, 3]] mu [a, [b, *c]] pa #=> 0
pb #=> 1
pc #=> [2, 3] kuperanyaya {a: 0, b: 1}
mu{a: 0, x: 1}
:hazvipo
mu{a: 0, b: var}
p var #=> 1
magumo - Iyo goko remaverengero ekuverenga irb (REPL, Read-Eval-Print-Loop) ikozvino ine mukana we-multi-line editing, inoshandiswa uchishandisa raibhurari yekuverenga-inoenderana.
line yakanyorwa muRuby. Tsigiro yerdoc yakabatanidzwa, iyo inobvumira kutarisa referenzi ruzivo pamakirasi akatsanangurwa, ma module uye nzira mu irb. Kuratidzira kwemavara kwemitsara ine kodhi inoratidzwa kuburikidza neBinding#irb uye mhedzisiro yekuongorora base base class zvinhu zvinopihwa. - Yakawedzera compact marara muunganidzi (Compaction GC) iyo inogona kukanganisa dunhu rendangariro, kugadzirisa matambudziko ekuita zvishoma nezvishoma uye kuwedzera ndangariro kushandiswa nekuda kwekuparadzaniswa kwendangariro kunoitika panguva yekushanda kwemamwe akawanda-akarukwa Ruby application. Kurongedza zvinhu pamurwi
suggested GC.compact nzira, iyo inokutendera kuti uderedze huwandu hwemapeji endangariro anoshandiswa uye kukwidziridza murwi wekushanda
CoW (copy-on-write). -
Kuitwa kugadzirira kupatsanura nharo zvichienderana nenzvimbo yerondedzero ("def foo(a,b,c)") uye mazwi akakosha ("def foo(kiyi: val)"). Kushandura otomatiki kwegakava kunoenderana nemazwi akakosha uye chinzvimbo chakaregwa uye hachizotsigirwa mubazi reRuby 3.0. Kunyanya, yakasiya kushandisa iyo yekupedzisira nharo senge keyword paramita, ichipfuura keyword-based nharo seyekupedzisira hashi parameter, uye kupatsanura iyo yekupedzisira nharo kuita chinzvimbo uye keyword paramita.def foo(kiyi: 42); end; foo({kiyi: 42}) # yambiro
def foo(**kw); end; foo({kiyi: 42}) # yambiro
def foo(kiyi: 42); end; foo(**{kiyi: 42}) # OK
def foo(**kw); end; foo(**{kiyi: 42}) # OKdef foo(h, **kw); end; foo(kiyi: 42) # yambiro
def foo(h, kiyi: 42); end; foo(kiyi: 42) # yambiro
def foo(h, **kw); end; foo({kiyi: 42}) # OK
def foo(h, kiyi: 42); end; foo({kiyi: 42}) # OKdef foo(h={}, kiyi: 42); end; foo("kiyi" => 43, kiyi: 42) #warned
def foo(h={}, kiyi: 42); end; foo({"kiyi" => 43, kiyi: 42}) # yambiro
def foo(h={}, kiyi: 42); end; foo({"kiyi" => 43}, kiyi: 42) # OKdef foo(opt={}); end; foo( kiyi: 42 ) # OK
def foo(h, **nil); end; foo(kiyi: 1) #ArgumentError
def foo(h, **nil); end; foo(**{kiyi: 1}) #KupokanaKukanganisa
def foo(h, **nil); end; foo("str" ββ=> 1) #KupokanaKukanganisa
def foo(h, **nil); end; foo({kiyi: 1}) # OK
def foo(h, **nil); end; foo({"str" ββ=> 1}) # OKh = {}; def foo(*a) kuguma; foo(**h) # [] h = {}; def foo(a) kuguma; foo(**h) # {} uye yambiro
h = {}; def foo(*a) kuguma; foo(h) # [{}] h = {}; def foo(a) kuguma; foo(h) # {} -
Mukana uchishandisa mazita akaverengerwa default akasiyana e block paramita.[1, 2, 3].mumwe nemumwe { anoisa @1 } # zvakafanana ne [1, 2, 3].mumwe nemumwe { |i| anoisa i}
- Rutsigiro rwekuedzwa kwemarenji asina kukosha kwekutanga.
ary[..3] # zvakafanana neari[0..3] rel.where(sales: ..100)
- Yakawedzerwa Enumerable#tally nzira, iyo inoverenga nhamba yenguva chimwe nechimwe chinhu chinoitika.
["a", "b", "c", "b"].tally
#=> {"a"=>1, "b"=>2, "c"=>1} - Inotenderwa kudaidza yakavanzika nzira ine chaiyo "self"
deffoo
magumo
private :foo
self.foo - Akawedzera Muverengi ::Simbe#Nzira yechido yekugadzira nhamba yenguva dzose kubva kumunhu ane usimbe (Muverengeri ::Simbe).
a = %w(foo bar baz)
e = a.lazy.map {|x| x.upcase }.map {|x| x + "!" }.chido
p e.class #=> Enumerator
e.map {|x| x + "?" } #=> [βFOO!?β, βBAR!?β, βBAZ!?β] - Kuvandudzwa kwekuedza JIT compiler kwaenderera mberi, iyo inogona kuvandudza zvakanyanya kushanda kwezvikumbiro mumutauro weRuby. Ruby's JIT compiler anotanga anyora C kodhi kudhisiki, obva afonera wekunze C compiler kuti agadzire mirairo yemuchina (inotsigira kufona GCC, Clang, uye Microsoft VC ++). Iyo vhezheni nyowani inoshandisa nzira yekuisa inline kana zvichidikanwa, yakasarudzika mashandisirwo ekugadzirisa modes panguva yekubatanidza inovimbiswa, iyo default kukosha kwe "-jit-min-call" inowedzerwa kubva pa5 kusvika 10000, uye "-jit-max- cache" kubva ku1000 kusvika ku100.
- Kuvandudzwa kwekuita kweCGI.escapeHTML, Monitor uye MonitorMixin.
- Module#zita, true.to_s, false.to_s, uye nil.to_s inovimbisa kuti tambo yadzoswa isina kuchinjika pachinhu chataurwa.
- Saizi yemabhinari mafaira akagadzirwa neRubyVM::MurairoSequence#to_binary; nzira yadzikiswa.
- Yakagadziridzwa shanduro yezvakavakirwa-mukati zvikamu, kusanganisira
Bundler 2.1.2, RubyGems 3.1.2,
Racc 1.4.15,
CSV 3.1.2, REXML 3.2.3,
RSS 0.2.8,
StringScanner 1.0.3; - Maraibhurari akatama kubva pakugoverwa kwepasi kuenda kune ekunze gem package
CMath (cmth gem),
Scanf (scanf gem),
Shell (shell gem)
Synchronizer (sync gem),
ThreadsWait (thwait gem),
E2MM (e2mmap gem). - Iwo default stdlib modules anoburitswa pane rubygems.org:
bhenji,
cgi,
nhume,
getoptlong,
net pop,
net-smtp
vhura3,
chitoro,
singleton. tarisa ma modules haana kutamiswa kune rubygems.org
mucherechedzi,
nguva yapera,
tracer
uri,
yaml, iyo inongopihwa muruby-core. - Kuvaka Ruby ikozvino kunoda C compiler inotsigira C99 standard.
Source: opennet.ru