% W (array) nə deməkdir?

FileUtils sənədlərinə baxıram. Aşağıdakı xəttlə qarışıqam:

 FileUtils.cp %w(cgi.rb complex.rb date.rb), '/usr/lib/ruby/1.6' 

%w nə deməkdir? Məni sənədlərə yönəldə bilərsinizmi?

643
14 авг. Dane O'Connor tərəfindən təyin olunan 14 aug. 2009-08-14 00:23 '09 'da 0:23' da 2009-08-14 00:23
@ 8 cavab

%w(foo bar) ["foo", "bar"] . Bu demektir ki, boşluqlar ilə ayrılmış simvollar dizisini yazmalısınız, virgülle deyil və onların ətrafında heç bir kotirovka yoxdur. Zenspider quickref -da yazı yazma yollarının bir siyahısını tapa bilərsiniz.

955
14 авг. Cavab verilir sepp2k 14 aug. 2009-08-14 00:28 '09 da 0:28 'da 2009-08-14 00:28

Mən " %w() " sözünü "sözlərin bir sıra" kimi düşünürəm - elementlər boşluqlarla ayrılır.

Digər% tildən ibarətdir:

border=0
  • %r() normal ifadəni yazmanın başqa bir üsuludur.
  • %q() bir tirajla simli yazmanın başqa bir yoludur (və faydalı olan çox yollu ola bilər)
  • %q() iki tirajlı bir simli var
  • %x() bir shell əmridir
  • %i() bir sıra simvol verir (Ruby> = 2.0.0)
  • %s() foo bir xarakterə çevrilir ( :foo )

Başqalarını tanımıram, amma orada gizli ola bilər ...

364
14 авг. Mike Woodhouse tərəfindən verilən cavabı 14 Av. 2009-08-14 02:06 '09 at 2:06 am 2009-08-14 02:06

Hər hansı bir simvol yaratmağa imkan verən %s , məsələn:

 %s|some words| #Same as :'some words' %s[other words] #Same as :'other words' %s_last example_ #Same as :'last example' 

Ruby 2.0.0 da olduğundan:

 %i( abc ) # => [ :a, :b, :c ] %i[ abc ] # => [ :a, :b, :c ] %i_ abc _ # => [ :a, :b, :c ] # etc... 
56
23 июля '11 в 23:16 2011-07-23 23:16 Cavab Eraden tərəfindən 23 İyul 23.11 'də 23:16 2011-07-23 23:16 tərəfindən verilir

%W%W qiymət və virgül olmadan strings bir sıra yaratmaq üçün imkan verir.

28
14 авг. Cavab Evan Meagher 14 avqustda verilir. 2009-08-14 00:28 '09 da 0:28 'da 2009-08-14 00:28

Bu köhnə bir yazı olmasına baxmayaraq, sual artmağa davam edir və cavablar həmişə mənə aydın görünmür, mənim düşüncələrim belədir:

%w%w dizilərə tətbiq olunan ümumi giriş məhdudiyyətləri ilə bağlı nümunələrdir. %q , %q , %r , %x%i daxil olan digər növləri var.

Üst və alt versiyaların arasındakı fərq, tək və ikiqat qiymətli funksiyalara giriş imkanı verir. Tək quotes və (kiçik halda) %w interpolasiya #{someCode} yoxdur ( #{someCode} ) və işləyən nəzarət simvolları məhdud bir sıra ( \\ , \n ). İki tirajlı və (böyük) %w , biz bu funksiyalara sahibik.

İstifadə edilən məhdudlaşdırıcı yalnız açıq bir parantez deyil, hər hansı bir xarakter ola bilər. Yəqin ki, həqiqətən nə görmək üçün yuxarıda olan nümunələrlə oynayırsınız.

%w və tam siyahı nümunələri ilə tam giriş üçün, qaçış simvolları və ayırıcıları baxın, " Ruby -% w vs% W - sirləri ortaya çıxdı! "

14
30 мая '14 в 11:00 2014-05-30 11:00 Markın Zark Studios'ta 30 May 'da 11: 00-da verdiyi cavab : 2014-05-30 11:00

Percent Strings sənədlərindən http://ruby-doc.org/core/doc/syntax/literals_rdoc.html#label-Percent+Strings :

Bir String yaratan% (...) əlavə%, digər obyektlərin növlərini yarada bilər. Dizələrlə olduğu kimi, böyük bir məktub, bir kiçik məktub onları aradan bırakırken, simvolları interpolasiya etməyə və qaçmağa imkan verir.

Yaqutdakı faiz xətlərinin növləri bunlardır:
...
w : strings array

10
13 марта '15 в 10:44 2015-03-13 10:44 cavab 13 mart 2015 -ci ildə saat 10: 41- də veriləcək

%w() əvəzinə %w[]

Ruby stilinə görə:

Bir sıra sözlərə ehtiyac duyduğunuzda alfabetik array sözdizimi üçün% w (boşluqlar və onların xüsusi simvolları olmayan boş sətirlər) üstünlük verin. Bu qaydanı yalnız iki və ya daha çox elementlə dizilərə tətbiq edin.

 # bad STATES = ['draft', 'open', 'closed'] # good STATES = %w[draft open closed] 

Fərqli faizli ədədlər üçün ən uyğun olan kıvırcık qələmlərdən istifadə edin.

[] , array litals üçün ( %w, %i, %W, %I ) çünki standart sütun yazıları ilə hizalanır.

 # bad %w(one two three) %i(one two three) # good %w[one two three] %i[one two three] 

Daha ətraflı oxuyun.

5
26 мая '17 в 10:46 2017-05-26 10:46 Cavab Raj Mişra tərəfindən 26 may '17 saat 10:46 2017-05-26 10:46 tarixində verilir

Mənə tam istifadəçi adı CSV cədvəlindən bir dəstə sütun verildi və formatları boşluqlarla saxlamaq lazım idi. Onları tapdığım en asan yol Ruby'yi istifadə etməkdir:

 names = %( Porter Smith Jimmy Jones Ronald Jackson).split('\n') 

" %() "Porter Smith\nJimmyJones\nRonald Jackson" kimi bir simli yaradır və simli "\n" ["Porter Smith", "Jimmy Jones", "Ronald Jackson"]

Orjinal OP %(cgi\ spaeinfilename.rb;complex.rb;date.rb).split(';') cavab verə bilmək üçün, space sonda mövcud olmasını istədiyiniz zaman %(cgi\ spaeinfilename.rb;complex.rb;date.rb).split(';') yaza bilərlər. çıxış array.

0
08 сент. Cavab pjammer 08 sep verilir . 2017-09-08 18:32 '17 saat 18:32 'da 2017-09-08 18:32

Tags ilə bağlı digər suallar və ya bir sual