شروع روبی . سوالات ابتدایی

سلام دوستان من خیلی گشتم کلاس خصوصی یا عمومی برای آموزش روبی پیدا کنم ولی نبود آخرم روم کم شد تصمیم گرفتم خودم شروع کنم
با اجازه دوستان در همین تاپیک سوالات ابتدایی که در شروع کار برای من پیش میاد رو مطرح میکنم در صورت امکان ممنون میشم اساتید پاسخ بدن شاید بعد ها دیگران هم که از ابتدا شروع میکنند این راهنمایی ها بکارشون بیاد .

  • شرمنده سوالات خیلی ابتدایی هست ولی قول میدم سریع پیشرفت کنم و سوالات حرفه ای تری رو مطرح کنم
    پیشا پیش از راهنمایی شما ممنونم::pray:
    ========================
    1-

الان فرق این دوتا دستور چیه؟ برای چاپ مگه نباید از puts استفاده کرد چرا تو بعضی آموزش ها print استفاده شده؟ فرقی نمکنه؟



`print <<"foo", <<"bar"  
	I said foo.
foo
	I said bar.
bar

`puts <<"foo", <<"bar"  
	I said foo.
foo
	I said bar.
bar

3- این علامت << کارش چیه ؟
4- تو روبی مگه استفاده از # باعث کامنت نمیشه ؟ آیا درسته که برای encoding از کد زیر استفاده باید کرد؟
` -- coding: UTF-8 --#
اگر # باعث کامنت میشه چرا پس تو کد بالا باید استفاده میشه؟

1 پسندیده

puts برای اینه که new line به خروجی اضافه بشه اما print این کارو نمیکنه. >> هم اینجا append هست که توی این مثال رشته ها رو به می چسبونه(concatenate)

بعضى تنظيمات رو رو ميشه به صورت كامنت در ابتداى فايل قرار داد كه البته فقط شبيه كامنت هستند اما ممكنه معنى خاصى داشته باشند

3 پسندیده

سلام دوست عزیز. من جزو اساتید نیستم :slight_smile: ولی پیشنهاد می کنم آموزش ها رو از اینجا شروع کنی. متن انگلیسی روان و ساده ای داره. با مترجم هایی مثل google translate خیلی راحت قابل خواندن ،حتی اگر شما هم مثل من ، انگلیسی ت خیلی ضعیف باشه :slight_smile: . افزونه گوگل ترنسلیت رو برای کروم طبق این آموزش نصب کن. فقط در مرحله ۶ ، بعد از انتخاب زبان گزینه « Immediately display popup » رو انتخاب کن. این جوری نیازی نیست که دو بار کلیک کنی. فقط روی هر عبارتی که خواستی باید دو بار کلیک کنی. (درسته که باز هم دوبار کلیک شد :slight_smile: ولی دوبار کلیک کردن روی یک نقطه ، راحت تر از کلیک کردن در دو جای مختلف روی صفحه است. )
اینجوری نتیجه میشه یه چیزی مثل این عکس

موفق باشی

3 پسندیده

مرسی دوست من از راهنماییت خیلی سایت خوبیه و عضو شدم ودارم باهاش کار میکنم
فقط یه سوال
a = 5 puts a/2
چرا میشه 2؟
2.5 نشون نمیده ؟ همین کد تو php میشه2.5
ممنون میشم راهنمایی کنید

1 پسندیده

چون شما یه int یا عدد صحیح رو داری تقسیم می کنی . برای همین خارج قسمت هم عدد صحیح خواهد بود. در واقع این چیزی شما که نوشتید میشه حاصل تقسیم ۲ بر ۵ که جواب میشه ۲ ، و باقیمانده ۱.
اگر بخواید که حاصل دقیق رو به دست بیارید باید 2 رو به شکل float یا عدد اعشاری بنویسید.

a = 5.0 puts a/2

3 پسندیده

ممنون از راهنماییتون دوستان
فرق این دوتا کد چیه خروجیش یکیه
این لینک
فرق reverse با reverse! چیه خروجیشون یکیه آخه :pray:

1 پسندیده

!reverse و هر متدی که ! داره خود آبجکت و عوض می‌کنه نتیجهٔ متدو روی آبجکت بر میگردونه ولی‌ متدی بدون ! فقط نتیجهٔ متدو روی آبجکت بر میگردونه و آبجکت اصلی‌ تغییر نمیده

7 پسندیده

دوستان یک سوال .
با روبی میشه نرم افزار تحت ویندوز هم نوشت ؟ خروجی exe میده بهمون ؟ و اینکه چطور گرافیک میتونه داشته باشه؟
لینکی در این مورد پیدا نکردم اگر این کار امکان پذیره ممنون میشم دوستان راهنمایی کنند با تشکر

1 پسندیده

بله شدنی هست. یکی از تولکیت‌های معروف برای این کار:
http://shoesrb.com

2 پسندیده

سلام دوست عزیز با Platypus می‌توانی برای MacOS خروجی بگیری و با IronRuby هم که با دات‌نت فریم ورک یکپارچه شده بنویسی (ولی دیگر 4-5 ساله آپدیتی بیرون نداده) و اینکه کتابخانه Gosu برای ساخت بازی های 2بعدی برای مک، ویندوز ، لینوکس با روبی و C++ هست . و تولکیت های هم هستند مثل Shoes , wxWidgets که این کار را برای ویندوز و بقیه سیستم عامل ها انجام می‌دهد. فقط قبل از کار با هر کدام از ابزار ها ببین آخرین آپدیتش مال چه موقعی است و تیم پشتیبانش به‌بروزرسانی می‌کند یا دیگر بی‌خیال شدن که به مشکل داخل پروژ ات نخوری.

3 پسندیده

سلام دوستان ممنون از راهنماییتون
من روبی رو سرورم نصب کردم بعد که اومدم ریلز رو نصب کنم گفت داداش شرمنده روبی نصب شده قدیمیه بروز رسانی باید کنی روبی رو
من از این سایت Linuxbrew رو نصب کردم بعد از نصب هر دستوری که با brew میزنم پیغام زیر رو میده


[[email protected] ~]# brew doctor
Error: Running Homebrew as root is extremely dangerous and no longer supported.
As Homebrew does not drop privileges on installation you would be giving all
build scripts full access to your system.


ممنون میشم راهنمایی کنید

1 پسندیده

Mac:

Linux:

نيازى به LinuxBrew نيست

2 پسندیده

@toomaj :pray::pray:


دوستان فرق gets با gets.chomp در چیه؟ با هر دو ورودی میگیرم یکسانه هیچ فرقی نمیکنه :nerd:

1 پسندیده

خب راستش باید بگم chomp و gets کلا ربطی به هم ندارند.
کار chomp حذف separator character از انتهای string است. از اونجایی که نتیجه متد gets یک String هست که ممکنه کرکتر جدا کننده داشته باشه باید با chomp حذفش کنیم.

"hello".chomp                #=> "hello"
"hello\n".chomp              #=> "hello"
"hello\r\n".chomp            #=> "hello"
"hello\n\r".chomp            #=> "hello\n"
"hello\r".chomp              #=> "hello"
"hello \n there".chomp       #=> "hello \n there"
"hello".chomp("llo")         #=> "he"
"hello\r\n\r\n".chomp('')    #=> "hello"
"hello\r\n\r\r\n".chomp('')  #=> "hello\r\n\r"
4 پسندیده

یه مثال ساده در تکمیل توضیحی که toomaj عزیز داد =>

name = gets  #name = toomaj
puts "hello #{name} how are you ?"
#output => hello toomaj
# how are you ?
-------------------
name = gets.chomp
puts "hello #{name} how are you ?"
#output => hello toomaj how are you ?
4 پسندیده

سلام دوستان سال نو بر همه شما مبارک
یک سوالی داشتم تو درک اینکه چه زمانی باید و نباید از return استفاده کنم تو توابع مشکل دارم


def add(number)
  number 
end
returned_value = add(4)
puts returned_value



def add(number)
  return number 
end
returned_value = add(4)
puts returned_value


تو توابع بالا خروجی هر دو ۴ هست خب فرقش چیه ؟ باید از return استفاده کنم یا نکنم:robot:

ممنون میشم راهنمایی کنید

1 پسندیده

تشکر از همه دوستان برای راهنمایی بنده:pray:

من الان رسیدم به آموزش کار کردم با فایل

f = File.new("text.txt", "w+")
f.write("Hello, World")
f.close

یک فایل جدید ایجاد میکنم تو irb و توش چیزی مینویسم حالا این فایل new.txtکجا ذخیره میشه؟

1 پسندیده

فایل همون جایی که irb زدید

3 پسندیده

من رو مک هستم ترمینالو باز میکنم و irb رو اجرا میکنم فایل رو سیستمم ذخیره نمیشه نیستش
پارتیشن ندارم رو دسکتاپ مگه نباید ذخیره بشه؟

1 پسندیده

من یک پوشه درست کردم یک فایل روبی درست کردم کد زیر توشه و یک فایل text.txt هم کنار فایل روبی که توش چند لاین نوشته گذاشتم

f = File.open('text.txt', 'r')
 
for line in f
 puts line
end
 
f.close

حالا تو ترمینال مستقیم فایل روبی رو اجرا میکنم

ruby /Users/shayan/Desktop/ruby-sample/test.rb

اما چیزی بازم لود نمیشهه . کدم اشکال داره؟

1 پسندیده