د یو کال پرمختګ وروسته
اصلي
- تجربوي
ملاتړ د نمونې سره سمون (د نمونې سره سمون خوري ) په ورکړل شوي څیز باندې تکرار کول او ارزښت ټاکل که چیرې د نمونې سره سمون ولري.قضیه [0, [1, 2, 3]] په [a, [b, *c]] pa #=> 0 کې
pb #=> 1
pc #=> [2, 3] پایقضیه {a: 0، b: 1}
in{a:0,x:1}
: د لاسرسي وړ
په {a: 0، b: var} کې
p var #=> 1
پای - د متقابل محاسبې شیل irb (REPL, Read-Eval-Print-Loop) اوس د څو لاین ترمیم امکان لري، د لوستلو سره مطابقت لرونکي کتابتون په کارولو سره پلي کیږي
کرښه په روبی لیکل شوی د rdoc لپاره ملاتړ مدغم شوی ، کوم چې په irb کې د مشخصو ټولګیو ، ماډلونو او میتودونو په اړه د حوالې معلوماتو لیدو ته اجازه ورکوي. د Binding#irb له لارې ښودل شوي کوډ سره د لینونو رنګ روښانه کول او د بیس کلاس شیانو تفتیش پایلې چمتو شوي. - د کمپیکٹ کثافاتو راټولونکی (Compaction GC) اضافه شوی چې کولی شي د حافظې ساحه خرابه کړي ، د ورو فعالیت ستونزې حل کړي او د حافظې ټوټې کیدو له امله د حافظې مصرف ډیر کړي چې د څو څو اړخیز روبي غوښتنلیکونو عملیاتو پرمهال پیښیږي. په ټوټو کې د شیانو بسته کولو لپاره
وړاندیز شوی د GC.compact میتود د کارولو لپاره د حافظې مخونو شمیر کمولو او د عملیاتو لپاره هپ اصلاح کول
CoW (کاپي پر لیکلو). -
ترسره کړی دی په لیست کې د موقعیت پراساس جلا دلیلونو ته چمتو کول ("def foo(a,b,c)") او کلیدي کلمې ("def foo(key: val)"). د کلیدي کلمو او موقعیت پراساس د اتوماتیک دلیل تبادله له مینځه وړل شوې او د روبي 3.0 څانګه کې به ملاتړ ونلري. په ځانګړې توګه، دا د وروستي دلیل د کلیدي پیرامیټونو په توګه کارول، د کلیدي کلمې پر بنسټ دلیلونو ته د وروستي هش پیرامیټر په توګه لیږدولو لپاره، او وروستی دلیل په موقعیتي او کلیدي پیرامیټونو ویشل شوی.def foo(key: 42); پای foo({key: 42}) #خبردار
def foo (** kw)؛ پای foo({key: 42}) #خبردار
def foo(key: 42); پای foo(**{key: 42}) # سمه ده
def foo (** kw)؛ پای foo(**{key: 42}) # سمه دهdef foo(h, **kw); پای foo(key: 42) #خبردار
def foo(h, key: 42); پای foo(key: 42) #خبردار
def foo(h, **kw); پای foo({key: 42}) # سمه ده
def foo(h, key: 42); پای foo({key: 42}) # سمه دهdef foo(h={}, key: 42); پای foo("key" => 43, key: 42) #خبردار
def foo(h={}, key: 42); پای foo({"key" => 43, key: 42}) # خبرداری ورکړل شوی
def foo(h={}, key: 42); پای foo({"key" => 43}, key: 42) # سمه دهdef foo(opt={}); پای foo (کیلي: 42) # سمه ده
def foo(h, **nil); پای foo(key: 1) # دلیل تېروتنه
def foo(h, **nil); پای foo(**{key: 1}) # دلیل تېروتنه
def foo(h, **nil); پای foo("str" => 1) # دلیل تېروتنه
def foo(h, **nil); پای foo({key: 1}) # سمه ده
def foo(h, **nil); پای foo({"str" => 1}) # سمه دهh = {}; def foo(*a) پای؛ foo(**h) # [] h = {}; def foo(a) پای؛ foo(**h) # {} او خبرداری
h = {}; def foo(*a) پای؛ foo(h) # [{}] h = {}; def foo(a) پای؛ foo(h) # {} -
فرصت د بلاک پیرامیټونو لپاره د ډیفالټ لخوا د شمیر شوي متغیر نومونو کارول.[1, 2, 3]. هر { @1 } # لکه [1, 2, 3]. هر {|i| اچوي }
- د رینجونو لپاره تجربه لرونکي ملاتړ پرته له کوم ابتدايي ارزښت.
ary[..3] # ورته ورته ary[0..3] rel.where( sales: ..100)
- د شمیرنې وړ # ټلی میتود اضافه شوی، کوم چې شمیرل کیږي چې هر عنصر څو ځله واقع کیږي.
["ا"، "ب"، "ج"، "ب"]. ټالی
#=> {"a" => 1, "b" => 2, "c" => 1} - د "ځان" لفظي سره د شخصي میتود کال اجازه ورکړل شوې
خنثی کول
پای
شخصي:foo
self.foo - اضافه شوی شمیرونکی::Lazy#eager میتود د سست (شمیرونکی::سست) شمیرنې څخه منظم شمیرنې رامینځته کولو لپاره.
a = %w(foo bar باز)
e = a.lazy.map {|x| x.upcase }.نقشه {|x| x + "!" }. لیواله
p e.class #=> شمیرونکی
e.map {|x| x + "؟" } #=> [“FOO!؟”، “بار!؟”، “باز!؟”] - د تجربوي JIT کمپیلر پراختیا دوام لري ، کوم چې کولی شي د روبي ژبه کې د غوښتنلیکونو فعالیت د پام وړ ښه کړي. په روبي کې وړاندیز شوی JIT کمپیلر لومړی ډیسک ته C کوډ لیکي ، بیا وروسته دا د ماشین لارښوونې رامینځته کولو لپاره بهرني C کمپیلر ته زنګ وهي (GCC ، کلینګ او مایکروسافټ VC ++ ملاتړ کیږي). نوې نسخه د اړتیا په صورت کې د انلاین ګمارنې لپاره میتود پلي کوي، د تالیف په جریان کې د اصلاح کولو طریقو غوره غوښتنلیک، د "-jit-min-calls" اصلي ارزښت له 5 څخه 10000 ته لوړ شوی، او "-jit-max-cache" له 1000 څخه تر 100 پورې
- د CGI.escapeHTML، مانیټر او مانیټر مکسین ښه فعالیت.
- ماډل # نوم، true.to_s، false.to_s، او nil.to_s ډاډ ترلاسه کوي چې یو تار بیرته راستانه شوی چې د ټاکل شوي اعتراض لپاره بدل شوی نه وي.
- د RubyVM::InstructionSequence#to_binary میتود لخوا رامینځته شوي د بائنری فایلونو اندازه کمه شوې؛
- د جوړ شوي اجزاوو تازه شوي نسخې، په شمول
بنډلر 2.1.2، RubyGems 3.1.2،
Racc 1.4.15،
CSV 3.1.2, REXML 3.2.3,
RSS 0.2.8,
د تار سکینر 1.0.3; - کتابتونونه د اساسی توزیع څخه خارجی قیمتی کڅوړو ته لیږدول شوی
CMath (cmath gem)،
Scanf (scanf gem)
شیل (شیل جوهر)
همغږي کوونکي (د همغږي جوهر)،
تارونه انتظار (تیر جوهر)
E2MM (e2mmap gem). - د ډیفالټ stdlib ماډلونه په rubygems.org کې خپاره شوي دي:
معیار ،
cgi
استازي
ګیټوپټلنګ
خالص پاپ،
خالص smtp،
خلاص3,
پلورنځی
سنگلټن د څار ماډلونه rubygems.org ته نه دي لیږدول شوي
څارونکی
وخت خلاص شو،
تعقیبونکی
یوری
yaml، کوم چې یوازې د روبي کور سره لیږدول کیږي. - د روبي جوړول اوس د C کمپیلر ته اړتیا لري چې د C99 معیار ملاتړ کوي.
سرچینه: opennet.ru