Ini ialah arahan ruby yang boleh dijalankan dalam penyedia pengehosan percuma OnWorks menggunakan salah satu daripada berbilang stesen kerja dalam talian percuma kami seperti Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS.
JADUAL:
NAMA
ruby — Mentafsir bahasa skrip berorientasikan objek
SINOPSIS
ruby [--hak cipta] [--versi] [-SUacdlnpswvy] [-0[oktal]] [-C direktori]
[-E luar[:dalaman]] [-F[pola]] [-I direktori] [-K[c]] [-T[tahap]] [-W[tahap]]
[-e arahan] [-i[lanjutan]] [-r perpustakaan] [-x[direktori]] [--{membolehkan|melumpuhkan}-CIRI]
[--pembuangan=sasaran] [--verbose] [--] [fail_program] [hujah ...]
DESCRIPTION
Ruby ialah bahasa skrip yang ditafsirkan untuk pengaturcaraan berorientasikan objek yang cepat dan mudah.
Ia mempunyai banyak ciri untuk memproses fail teks dan untuk melakukan tugas pengurusan sistem (seperti dalam Perl).
Ia mudah, lurus ke hadapan dan boleh dikembangkan.
Jika anda mahukan bahasa untuk pengaturcaraan berorientasikan objek yang mudah, atau anda tidak menyukai Perl
keburukan, atau anda suka konsep LISP, tetapi tidak suka terlalu banyak kurungan, Ruby
mungkin bahasa pilihan anda.
CIRI-CIRI
Ciri-ciri Ruby adalah seperti berikut:
Terjemahan
Ruby ialah bahasa yang ditafsirkan, jadi anda tidak perlu menyusun semula atur cara yang ditulis
Ruby untuk melaksanakan mereka.
Pembolehubah mempunyai tidak jenis (dinamik menaip)
Pembolehubah dalam Ruby boleh mengandungi data apa-apa jenis. Anda tidak perlu risau
menaip berubah-ubah. Akibatnya, ia mempunyai semakan masa penyusunan yang lebih lemah.
Tidak pengisytiharan diperlukan
Anda boleh menggunakan pembolehubah dalam program Ruby anda tanpa sebarang pengisytiharan. Pembolehubah
nama menunjukkan skop mereka - global, kelas, contoh, atau tempatan.
Mudah sintaks
Ruby mempunyai sintaks mudah yang dipengaruhi sedikit daripada Eiffel.
Tidak peringkat pengguna memori pengurusan
Ruby mempunyai pengurusan memori automatik. Objek tidak lagi dirujuk dari mana-mana sahaja
dikumpul secara automatik oleh pemungut sampah yang dibina ke dalam penterjemah.
Segalanya is an objek
Ruby ialah bahasa berorientasikan objek semata-mata, dan begitu sejak penciptaannya. Walaupun begitu
data asas sebagai integer dilihat sebagai objek.
kelas, warisan, and kaedah
Sebagai bahasa berorientasikan objek, Ruby secara semula jadi mempunyai ciri asas seperti kelas,
pewarisan, dan kaedah.
Singleton kaedah
Ruby mempunyai keupayaan untuk menentukan kaedah untuk objek tertentu. Sebagai contoh, anda boleh
tentukan tindakan tekan butang untuk widget tertentu dengan mentakrifkan kaedah tunggal untuk
butang. Atau, anda boleh membuat sistem objek berasaskan prototaip anda sendiri menggunakan
kaedah tunggal, jika anda mahu.
Campur-dalam by modul
Ruby dengan sengaja tidak mempunyai warisan berbilang kerana ia merupakan sumber
kekeliruan. Sebaliknya, Ruby mempunyai keupayaan untuk berkongsi pelaksanaan di seluruh
pokok pusaka. Ini sering dipanggil 'Campuran'.
Pengulangan
Ruby mempunyai iterator untuk abstraksi gelung.
Penutupan
Dalam Ruby, anda boleh objektif prosedur.
teks pemprosesan and kerap ungkapan
Ruby mempunyai banyak ciri pemprosesan teks seperti dalam Perl.
M17N, watak menetapkan bebas
Ruby menyokong pengaturcaraan berbilang bahasa. Mudah untuk memproses teks yang ditulis dalam banyak
bahasa semula jadi yang berbeza dan dikodkan dalam banyak pengekodan aksara yang berbeza,
tanpa bergantung pada Unicode.
Bignums
Dengan bignum terbina dalam, anda boleh misalnya mengira faktorial(400).
Refleksi and domain khusus bahasa
Kelas juga merupakan contoh kelas Kelas. Definisi kelas dan kaedah ialah
ungkapan sama seperti 1+1. Jadi program anda juga boleh menulis dan mengubah suai program.
Oleh itu, anda boleh menulis aplikasi anda dalam bahasa pengaturcaraan anda sendiri di atas Ruby.
Pengecualian mengendalikan
Seperti dalam Java(tm).
terus mengakses kepada yang OS
Ruby boleh menggunakan kebanyakan panggilan sistem UNIX, selalunya digunakan dalam pengaturcaraan sistem.
Dinamik loading
Pada kebanyakan sistem UNIX, anda boleh memuatkan fail objek ke dalam penterjemah Ruby on-the-
terbang.
Kaya perpustakaan
Perpustakaan yang dipanggil "perpustakaan terbina" dan "perpustakaan standard" digabungkan dengan Ruby.
Dan anda boleh mendapatkan lebih banyak perpustakaan melalui sistem pengurusan pakej yang dipanggil
`RubyGems'.
Selain itu, terdapat beribu-ribu projek Ruby di GitHub
⟨https://github.com/languages/Ruby⟩.
PILIHAN
Jurubahasa Ruby menerima pilihan baris arahan berikut (suis). Mereka agak serupa
kepada mereka yang perl(1).
--hak cipta Mencetak notis hak cipta.
--versi Mencetak versi penterjemah Ruby.
-0[oktal] (Digit "sifar".) Menentukan pemisah rekod input ($/) sebagai perlapanan
nombor. Jika tiada digit diberikan, aksara nol diambil sebagai pemisah.
Suis lain mungkin mengikut digit. -00 menukar Ruby kepada mod perenggan.
-0777 menjadikan Ruby membaca keseluruhan fail sekaligus sebagai rentetan tunggal kerana tidak ada
watak undang-undang dengan nilai itu.
-C direktori
-X direktori Menyebabkan Ruby beralih ke direktori.
-E luar[:dalaman]
--pengekodan luar[:dalaman]
Menentukan nilai lalai untuk pengekodan luaran dan pengekodan dalaman.
Nilai hendaklah dipisahkan dengan titik bertindih (:).
Anda boleh meninggalkan satu untuk pengekodan dalaman, kemudian nilainya
(Encoding.default_internal) akan menjadi sifar.
--pengekodan-luaran=pengekodan
--pengekodan dalaman=pengekodan
Tentukan pengekodan aksara luaran atau dalaman lalai
-F pola Menentukan pemisah medan input ($;).
-I direktori Digunakan untuk memberitahu Ruby tempat untuk memuatkan skrip perpustakaan. Laluan direktori akan menjadi
ditambahkan pada pembolehubah laluan beban ($:).
-K kcode Menentukan pengekodan KANJI (Jepun). Nilai lalai untuk pengekodan skrip
(__ENCODING__) dan pengekodan luaran (Encoding.default_external) akan menjadi
yang ditentukan. kcode boleh menjadi salah satu
e EUC-JP
s Windows-31J (CP932)
u UTF-8
n ASCII-8BIT (BINARI)
-S Membuat Ruby menggunakan pembolehubah persekitaran PATH untuk mencari skrip, melainkan ia
nama bermula dengan garis miring. Ini digunakan untuk meniru #! pada mesin yang tidak
menyokongnya, dengan cara berikut:
#! /usr/local/bin/ruby
# Baris ini menjadikan yang seterusnya sebagai ulasan dalam Ruby \
exec /usr/local/bin/ruby -S $0 $*
-T[tahap=1] Menghidupkan pemeriksaan kotoran pada tahap yang ditentukan (lalai 1).
-U Menetapkan nilai lalai untuk pengekodan dalaman (Encoding.default_internal) kepada
UTF-8.
-W[tahap=2] Menghidupkan mod verbose pada tahap yang ditentukan tanpa mencetak versi
mesej pada permulaan. Tahap boleh;
0 Mod verbose ialah "senyap". Ia menetapkan $VERBOSE kepada sifar.
1 Mod verbose ialah "sederhana". Ia menetapkan $VERBOSE kepada palsu.
2 (lalai) Mod verbose ialah "verbose". Ia menetapkan $VERBOSE kepada benar.
-W2 adalah sama seperti -w
-a Menghidupkan mod pisah automatik apabila digunakan dengan -n or -p. Dalam mod pisah automatik, Ruby
dilaksanakan
$F = $_.pecah
pada permulaan setiap gelung.
-c Menyebabkan Ruby menyemak sintaks skrip dan keluar tanpa melaksanakan. Jika
tiada ralat sintaks, Ruby akan mencetak "Syntax OK" kepada standard
output.
-d
--nyahpepijat Menghidupkan mod nyahpepijat. $DEBUG akan ditetapkan kepada benar.
-e arahan Menentukan skrip daripada baris arahan sambil memberitahu Ruby supaya tidak mencari yang lain
daripada argumen untuk nama fail skrip.
-h
- membantu Mencetak ringkasan pilihan.
-i lanjutan Menentukan mod edit di tempat. Sambungan, jika dinyatakan, ditambahkan pada lama
nama fail untuk membuat salinan sandaran. Sebagai contoh:
% echo matz > /tmp/junk
% kucing /tmp/sampah
matz
% ruby -p -i.bak -e '$_.upcase!' /tmp/sampah
% kucing /tmp/sampah
MATZ
% kucing /tmp/junk.bak
matz
-l (Huruf kecil "ell".) Mendayakan pemprosesan penamat baris automatik,
yang bermaksud untuk mula-mula menetapkan $\ kepada nilai $/, dan kedua memotong setiap
baca baris menggunakan chop!.
-n Menyebabkan Ruby menganggap gelung berikut di sekeliling skrip anda, yang menjadikannya
lelaran pada argumen nama fail agak seperti sed -n or awk.
semasa mendapat
...
akhir
-p Bertindak kebanyakannya sama seperti suis -n, tetapi cetak nilai pembolehubah $_ pada setiap satu
hujung gelung. Sebagai contoh:
% echo matz | delima -p -e '$_.tr! "az", "AZ"'
MATZ
-r perpustakaan Menyebabkan Ruby memuatkan perpustakaan menggunakan require. Ia berguna apabila digunakan -n or
-p.
-s Membolehkan beberapa penghuraian suis untuk suis selepas nama skrip tetapi sebelum mana-mana
argumen nama fail (atau sebelum a --). Mana-mana suis yang ditemui di sana dialih keluar
daripada ARGV dan tetapkan pembolehubah yang sepadan dalam skrip. Sebagai contoh:
#! /usr/local/bin/ruby -s
# mencetak "true" jika digunakan dengan suis `-xyz'.
cetak "benar\n" jika $xyz
Pada sesetengah sistem $0 tidak selalu mengandungi nama laluan penuh, jadi anda memerlukan
-S beralih untuk memberitahu Ruby untuk mencari skrip jika perlu (untuk mengendalikan
ruang terbenam dan sebagainya). Binaan yang lebih baik daripada $* ialah ${1+"$@"},
tetapi ia tidak berfungsi jika skrip ditafsirkan oleh csh(1).
-v Mendayakan mod verbose. Ruby akan mencetak versinya pada permulaan dan ditetapkan
pembolehubah $VERBOSE kepada benar. Sesetengah kaedah mencetak mesej tambahan jika ini
pembolehubah adalah benar. Jika suis ini diberikan, dan tiada suis lain
kini, Ruby berhenti selepas mencetak versinya.
-w Mendayakan mod verbose tanpa mencetak mesej versi pada permulaan. Ia
menetapkan pembolehubah $VERBOSE kepada benar.
-x[direktori] Memberitahu Ruby bahawa skrip dibenamkan dalam mesej. Sampah utama akan menjadi
dibuang sehingga baris pertama yang bermula dengan “#!” dan mengandungi rentetan,
"delima". Sebarang suis bermakna pada talian itu akan digunakan. Pengakhiran
skrip mesti dinyatakan dengan sama ada EOF, ^D (control-D), ^Z (control-Z),
atau perkataan terpelihara __END__. Jika nama direktori dinyatakan, Ruby akan
beralih ke direktori itu sebelum melaksanakan skrip.
-y
--yydebug JANGAN GUNA.
Menghidupkan mod nyahpepijat pengkompil. Ruby akan mencetak sekumpulan keadaan dalaman
mesej semasa penyusunan. Hanya nyatakan suis ini yang akan anda nyahpepijat
jurubahasa Ruby.
--lumpuhkan-CIRI
--dayakan-CIRI
Lumpuhkan (atau dayakan) yang ditentukan CIRI.
--lumpuhkan-permata
--dayakan-permata Lumpuhkan (atau dayakan) perpustakaan RubyGems. Secara lalai,
Ruby akan memuatkan versi terkini setiap permata yang dipasang.
Pemalar Permata adalah benar jika RubyGems didayakan, palsu jika
sebaliknya.
--disable-rubyopt
--dayakan-rubyopt Abaikan (atau mempertimbangkan) pembolehubah persekitaran RUBYOPT.
Secara lalai, Ruby menganggap pembolehubah.
--lumpuhkan-semua
--dayakan-semua Lumpuhkan (atau dayakan) semua ciri.
--pembuangan=sasaran Buang beberapa maklumat.
Mencetak sasaran yang ditentukan. sasaran boleh menjadi salah satu daripada;
versi perihalan versi sama seperti --versi
penggunaan mesej penggunaan ringkas sama seperti -h
membantu Tunjukkan mesej bantuan panjang sama seperti - membantu
sintaks semak sintaks sama seperti -c --yydebug
yydebug mod nyahpepijat pengkompil, sama seperti --yydebug
Hanya tentukan suis ini jika anda akan menyahpepijat Ruby
jurubahasa.
parsetree
parsetree_with_comment Pokok nod AST
Hanya tentukan suis ini jika anda akan menyahpepijat Ruby
jurubahasa.
inns arahan yang dibongkar
Hanya tentukan suis ini jika anda akan menyahpepijat Ruby
jurubahasa.
--verbose Mendayakan mod verbose tanpa mencetak mesej versi pada permulaan. Ia
menetapkan pembolehubah $VERBOSE kepada benar. Jika suis ini diberikan, dan tiada yang lain
suis hadir, Ruby berhenti selepas mencetak versinya.
PERSEKITARAN
RUBYLIB Senarai direktori yang dipisahkan bertindih yang ditambahkan pada laluan pemuatan perpustakaan Ruby
($:). Direktori daripada pembolehubah persekitaran ini dicari sebelum standard
laluan muatan dicari.
cth:
RUBYLIB="$HOME/lib/ruby:$HOME/lib/rubyext"
RUBYOPT Pilihan Ruby tambahan.
contohnya
RUBYOPT="-w -Ke"
Ambil perhatian bahawa RUBYOPT boleh mengandungi sahaja -d, -E, -I, -K, -r, -T, -U, -v, -w, -W,
--nyahpepijat, --lumpuhkan-CIRI and --dayakan-CIRI.
RUBYPATH Senarai direktori dipisahkan bertindih yang Ruby cari program Ruby apabila
yang -S bendera ditentukan. Pembolehubah ini mendahului pembolehubah persekitaran PATH.
RUBYSHELL Laluan ke perintah shell sistem. Pembolehubah persekitaran ini didayakan untuk
hanya platform mswin32, mingw32, dan OS/2. Jika pembolehubah ini tidak ditakrifkan, Ruby
merujuk kepada COMSPEC.
PATH Ruby merujuk kepada pembolehubah persekitaran PATH semasa memanggil Kernel#system.
Dan Ruby bergantung pada beberapa pembolehubah persekitaran berkaitan RubyGems melainkan RubyGems dilumpuhkan.
Lihat bantuan daripada permata(1) seperti di bawah.
% bantuan permata
GC PERSEKITARAN
Pengumpul sampah Ruby (GC) menjejaki objek dalam slot bersaiz tetap, tetapi setiap objek boleh
mempunyai peruntukan memori tambahan yang dikendalikan oleh keluarga malloc panggilan perpustakaan standard C (
malloc(3), calloc(3), dan peruntukkan semula(3)). Dalam dokumentasi ini, "timbunan" merujuk kepada
Timbunan objek ruby slot bersaiz tetap, manakala "malloc" merujuk kepada peruntukan tambahan
biasanya dirujuk sebagai "timbunan proses". Oleh itu terdapat sekurang-kurangnya dua cara yang mungkin untuk
pencetus GC:
1 Mencapai had objek.
2 Mencapai had malloc.
Dalam Ruby 2.1, GC generasi telah diperkenalkan dan had dibahagikan kepada muda dan
generasi lama, menyediakan dua cara tambahan untuk mencetuskan GC:
3 Mencapai had objek lama.
4 Mencapai had malloc lama.
Pada masa ini terdapat 4 kawasan yang mungkin di mana GC boleh ditala oleh 11 berikut
pembolehubah persekitaran:
RUBY_GC_HEAP_INIT_SLOTS Slot peruntukan awal. Diperkenalkan dalam Ruby 2.1,
lalai: 10000.
RUBY_GC_HEAP_FREE_SLOTS Sediakan sekurang-kurangnya jumlah slot ini selepas GC.
Peruntukkan slot nombor ini jika tidak mencukupi
slot. Diperkenalkan dalam Ruby 2.1, lalai: 4096
RUBY_GC_HEAP_GROWTH_FACTOR Tingkatkan kadar peruntukan slot timbunan sebanyak ini
faktor. Diperkenalkan dalam Ruby 2.1, lalai: 1.8,
minimum: 1.0 (tiada pertumbuhan)
RUBY_GC_HEAP_GROWTH_MAX_SLOTS Kadar peruntukan adalah terhad kepada bilangan slot ini,
mencegah peruntukan yang berlebihan disebabkan oleh
RUBY_GC_HEAP_GROWTH_FACTOR. Diperkenalkan dalam Ruby 2.1,
lalai: 0 (tiada had)
RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR Lakukan GC penuh apabila bilangan objek lama adalah
lebih daripada R * N, di mana R ialah faktor ini dan N ialah
bilangan objek lama selepas GC penuh terakhir.
Diperkenalkan dalam Ruby 2.1.1, lalai: 2.0
RUBY_GC_MALLOC_LIMIT Had permulaan peruntukan generasi muda daripada
keluarga malloc. GC akan bermula apabila had ini
dicapai. Lalai: 16MB
RUBY_GC_MALLOC_LIMIT_MAX Had maksimum peruntukan generasi muda daripada
malloc sebelum GC bermula. Mencegah malloc yang berlebihan
pertumbuhan disebabkan oleh RUBY_GC_MALLOC_LIMIT_GROWTH_FACTOR.
Diperkenalkan dalam Ruby 2.1, lalai: 32MB.
RUBY_GC_MALLOC_LIMIT_GROWTH_FACTOR Meningkatkan had panggilan malloc generasi muda,
mengurangkan kekerapan GC tetapi meningkatkan pertumbuhan malloc
sehingga RUBY_GC_MALLOC_LIMIT_MAX dicapai.
Diperkenalkan dalam Ruby 2.1, lalai: 1.4, minimum: 1.0
(tiada pertumbuhan)
RUBY_GC_OLDMALLOC_LIMIT Had awal peruntukan generasi lama daripada
malloc, GC penuh akan bermula apabila had ini
dicapai. Diperkenalkan dalam Ruby 2.1, lalai: 16MB
RUBY_GC_OLDMALLOC_LIMIT_MAX Had maksimum peruntukan generasi lama daripada
malloc sebelum GC penuh bermula. Mencegah berlebihan
pertumbuhan malloc disebabkan oleh
RUBY_GC_OLDMALLOC_LIMIT_GROWTH_FACTOR. Diperkenalkan dalam
Ruby 2.1, lalai: 128MB
RUBY_GC_OLDMALLOC_LIMIT_GROWTH_FACTOR Meningkatkan had malloc generasi lama
peruntukan, mengurangkan kekerapan GC penuh tetapi meningkat
pertumbuhan malloc sehingga RUBY_GC_OLDMALLOC_LIMIT_MAX adalah
dicapai. Diperkenalkan dalam Ruby 2.1, lalai: 1.2,
minimum: 1.0 (tiada pertumbuhan)
TIMBUNAN SAIZ PERSEKITARAN
Pembolehubah persekitaran saiz tindanan adalah bergantung kepada pelaksanaan dan tertakluk kepada perubahan
versi Ruby yang berbeza. Tindanan VM digunakan untuk kod Ruby tulen dan diuruskan oleh
mesin maya. Tindanan mesin digunakan oleh sistem pengendalian dan penggunaannya bergantung
pada sambungan C serta pilihan pengkompil C. Menggunakan nilai yang lebih rendah untuk ini mungkin membenarkan
aplikasi untuk memastikan lebih banyak Gentian atau Benang berjalan; tetapi meningkatkan peluang untuk
Pengecualian SystemStackError dan kesalahan segmentasi (SIGSEGV). Pembolehubah persekitaran ini
tersedia sejak Ruby 2.0.0. Semua nilai dinyatakan dalam bait.
RUBY_THREAD_VM_STACK_SIZE Saiz tindanan VM yang digunakan semasa pembuatan benang. lalai: 131072
(CPU 32-bit) atau 262144 (64-bit)
RUBY_THREAD_MACHINE_STACK_SIZE Saiz tindanan mesin yang digunakan semasa pembuatan benang. lalai: 524288
atau 1048575
RUBY_FIBER_VM_STACK_SIZE Saiz tindanan VM digunakan semasa pembuatan gentian. lalai: 65536 atau
131072
RUBY_FIBER_MACHINE_STACK_SIZE Saiz tindanan mesin yang digunakan semasa pembuatan gentian. lalai: 262144
atau 524288
Gunakan ruby dalam talian menggunakan perkhidmatan onworks.net