Skip to main content

در دو مقاله پیش، با مفاهیم پایه ای کافی اسکریپت آشنا شدیم. اکنون نوبت آن است که به مقوله آرایه و هش بپردازیم. آرایه، به مجموعه ای از متغیر ها گفته می شود که درون یک فضای بخصوص قرار گرفته اند. برای تعریف کردن آرایه ها در کافی اسکریپت، به شکل زیر عمل میکنیم :

array = [1, 2, 3, 4, 5]

و کد فوق در جاوااسکریپت به این شکل در می آید :

var array;
 
array = [1, 2, 3, 4, 5];

اعضای آرایه، هر کدام یک نمایه ( = Index) مخصوص به خود دارند، شما با استفاده از این نمایه، میتوانید به سادگی عضو مورد نظر خود در آرایه را فراخوانی کنید. نمایه ها از صفر شروع شده، و تا یکی کمتر از طول آرایه، ادامه دارند. در واقع طول آرایه را میتوان با استفاده از متد length به دست آورد :

alert array.length

خروجی دستور بالا، عدد ۵ است، و نمایه آخرین عضو آرایه array ، ۴ می باشد. فی الواقع با فراخوانی یکی یکی این نمایه ها میتوان به این اصل دست پیدا کرد :

array = [1, 2, 3, 4, 5]
 
alert array[0]
alert array[1]
alert array[2]
alert array[3]
alert array[4]

این کد در جاوااسکریپت به شکل زیر در می آید :

var array;
 
array = [1, 2, 3, 4, 5];
 
alert(array[0]);
 
alert(array[1]);
 
alert(array[2]);
 
alert(array[3]);
 
alert(array[4]);

اکنون، میخواهیم عضوی که در آرایه نیست، را به آن اضافه کنیم. برای مثال، عضوی با نمایه ۵ درون آرایه، موجود نیست. پس میتوانیم عضو مورد نظر را به آرایه اضافه کنیم :

array[5] = 6

تمام موضوعات مربوط به آرایه، در خطوط بالا گنجانده شده اند.

با استفاده از این متد ها، در آموزشهای بعدی، یعنی حلقه های تکرار، میتوانیم برنامه های بسیار جالبی بنویسیم. نکته حائز اهمیت این است که این رفتارها (نمایه ها و …) و متد ها، بین آرایه ها و متغیرهای نوع string مشترک هستند. در واقع میتوان نتیجه گرفت که string یک آرایه از کاراکترهاست.

اکنون به سراغ هش ها میرویم. هش ها، نوع بسیار خاصی از آرایه ها هستند. در هش ها، نمایه ها توسط کاربر تعریف می‌شوند. در واقع میتوان گفت که هش، نوعی دیکشنری است.

برای تعریف یک هش ساده (برای مثال دیکشنری دو کلمه ای انگلیسی به اسپانیایی) به شکل زیر عمل میکنیم :

en2es = {
      "Hello" : "Hola"
      "How are you?" : "Como esta?"
}

کد فوق در جاوااسکریپت به این شکل در می آید :

var en2es;
 
en2es = {
  "Hello": "Hola",
  "How are you?": "Como esta?"
};

برای فراخوانی مقادیر موجود در هش هم کافیست تا یکی از نمایه ها را فراخوانی کنیم، سپس مقداری که نمایه اختیار کرده است، نمایش می یابد.

مثلا در کد زیر، عبارت انگلیسی از کاربر دریافت شده، معادل اسپانیایی تحویل داده می شود :

en2es = {
      "Hello" : "Hola"
      "How are you?" : "Como esta?"
}
 
word = prompt "Enter English word: "
 
alert en2es[word]

که کد فوق در جاوااسکریپت به این شکل در می آید :

var en2es, word;
 
en2es = {
  "Hello": "Hola",
  "How are you?": "Como esta?"
};
 
word = prompt("Enter English word: ");
 
alert(en2es[word]);

در آموزش بعدی، زمانی که دستورات شرطی را فرا بگیریم، میتوانیم برنامه فوق را کنترل شده تر بنویسیم، برای مثال اگر لغت موجود بود، معادلش برگردانده شود، در غیر اینصورت، اروری برای کاربر نمایش داده شود.

یکی دیگر از خواص هش ها، این است که میتوان به این شکل نیز از آنها استفاده نمود :

student = {
        name : "Muhammadreza Haghiri"
        number : 1
}

در واقع این نوع تعریف، تعریف متغیرهای جهانی (Global) در جاوااسکریپت است. قطعه کد فوق در جاوااسکریپت نیز چنین است :

var student;
 
student = {
  name: "Muhammadreza Haghiri",
  number: 1
};

برای فراخوانی متغیر name هم کافیست اینگونه عمل کنیم :

alert student.name

برای درک بهتر این نوع تعریف متغیرها، بهتر است مقاله بهترین تمرینات برای تازه کاران را بخوانید.

در این مقاله، سعی شد هر در مورد آرایه و هش لازم است، گفته شود. در مقالات بعدی، با ساختارهای کنترلی آشنا خواهیم شد، سپس به سراغ سایر مفاهیم برنامه نویسی در کافی اسکریپت می‌رویم.

در مقاله قبلی، در مورد نصب و راه اندازی کافی اسکریپت بحث کردیم. در این مطلب، قصد داریم تا در مورد متغیر ها صحبت کنیم. متغیر ها و عملگرها، در همه زبان های برنامه نویسی ساخت یافته، از اهمیت ویژه ای برخوردارند. اکنون، انواع متغیر و سپس علمگرهای ریاضی  و منطقی را بررسی میکنیم.

انواع متغیر ها

متغیرها در کافی اسکریپت، همانند روبی و جاوااسکریپت هستند. در این زبان، متغیرها از نوع عدد صحیح، عدد ممیز شناور ، کاراکتر و رشته کاراکتری هستند. همچنین، متغیرهای بولین هم در این زبان استفاده می شوند. در واقع، این انواع متغیرها، در تمامی زبانها مشترک هستند ولی نوع تعریف آنها متفاوت است.

روش تعریف متغیر ها در کافی اسکریپت :

برای آن که ببینیم متغیر ها در کافی اسکریپت چگونه تعریف می شوند، یک فایل با نام variables.coffee ایجاد میکنیم. سپس درون فایل خود این چنین مینویسیم :

a = 2
b = 2.0
c = "Hello"
d = true

متغیر a که ممیز ندارد، از نوع عدد صحیح ( = Integer) و متغیر b که دارای ممیز است، از نوع ممیز شناور ( = Floating Point) و متغیر c که محتوایش درون کوتیشن مارک قرار گرفته، از نوع رشته ( = String) و متغیر d که مقدار true اختیار کرده است، از نوع بولین ( = Boolean) است. پس همانطور که دیدید، میتوانیم این گونه برای هر کدام از متغیر ها تعریف بیاوریم :

  • عدد صحیح : اعدادی که جزء اعشاری ندارند، و از منفی بی نهایت تا مثبت بی نهایت ادامه می یابند.
  • ممیز شناور : اعدادی که جزء اعشاری دارند ، و از منفی بی نهایت تا مثبت بی نهایت ادامه می یابند.
  • کاراکتر/رشته : مقادیر متنی که درون کوتیشن مارک (” “) قرار می گیرند.
  • بولین : متغیرهای منطقی هستند که تنها دو مقدار true ( = درست) و false ( = غلط) را اختیار میکنند.

اکنون، با تعریف متغیرها و نحوه تعریف کردن متغیر ها در برنامه آشنا شدیم، بیایید برنامه را به جاوااسکریپت ترجمه کنیم :

var a, b, c, d;
 
a = 2;
 
b = 2.0;
 
c = "Hello";
 
d = true;

اکنون، زمان آن رسیده تا از متغیرها درون یک برنامه، استفاده کنیم. بهتر است برنامه ای بنویسیم، که مقدار دو متغیر را از ورودی دریافت کرده، سپس در خروجی نمایش دهد :

a = prompt "Value 1: "
b = prompt "Value 2: "
 
alert a + b

ترجمه این کد به جاوااسکریپت می شود :

var a, b;
 
a = prompt("Value 1: ");
 
b = prompt("Value 2: ");
 
alert(a + b);

اما مشکل اینجاست که a و b از ورودی به صورت string دریافت می شوند. حالا بحث تبدیل نوع پیش می آید. کافیست تا کد خود را به این شکل تغییر دهیم :

a = prompt "Value 1: "
b = prompt "Value 2: "
c = parseInt(a, 10)
d = parseInt(b, 10)
alert c + d

در این کد، با استفاده از تابع parseInt توانستیم تا نوع string را به int تغییر دهیم و عملیات خود را روی آن انجام دهیم. در واقع، تابع parseInt تابعی است که درون خود جاوااسکریپت اجرا می شود، و ما همچنان به یاد داریم که کافی‌اسکریپت، تنها یک پیاده سازی از جاوااسکریپت است. برای درک علمکرد این تابع هم به این صفحه مراجعه کنید. کد بالا در جاوااسکریپت به شکل زیر در می‌آید :

var a, b, c, d;
 
a = prompt("Value 1: ");
 
b = prompt("Value 2: ");
 
c = parseInt(a, 10);
 
d = parseInt(b, 10);
 
alert(c + d);

پس از متغیرها، بهتر است کمی در مورد علمگرها بدانیم.

عملگرهای ریاضی

برای استفاده از عملگرهای ریاضی، کافیست از نمادهای آنها استفاده کنیم. چهار نماد + ، – ، * و / که به ترتیب نمایانگر چهار عمل اصلی، یعنی جمع و تفریق و ضرب و تقسیم هستند. عملگر % نیز نماد «باقی‌مانده» است. در واقع این پنج عملگر، بین همه زبانهای برنامه نویسی مشترکند. همچنین = عملگر انتساب بوده، و مقداری را به متغیری نسبت میدهد، و با «تساوی» برابر نیست. برای این که ببینیم عملگر ها چگونه هستند، یک برنامه ساده نوشته و اجرا میکنیم :

a = 2
b = 3
 
alert a + b
alert b - a
alert a * b
alert a / b
alert a % b

و کد فوق در جاوااسکریپت به شکل زیر در می آید :

var a, b;
 
a = 2;
 
b = 3;
 
alert(a + b);
 
alert(b - a);
 
alert(a * b);
 
alert(a / b);
 
alert(a % b);

در کافی‌اسکریپت، یک عملگر دیگر نیز وجود دارد که از روبی به ارث برده است، و آن عملگر توان است. عملگر توان به شکل ** نشان داده می شود. یعنی در کد زیر :

a = 2
b = 3
 
alert a ** b

متغیر a به توان متغیر b میرسد. در حالی که این کد در جاوااسکریپت به شکل :

var a, b;
 
a = 2;
 
b = 3;
 
alert(Math.pow(a, b));

نوشته می شود.

عملگرهای منطقی

عملگرهای منطقی، بیشتر در دستورات شرطی به کار می روند. در واقع وقتی میخواهیم تساوی، بزرگتر یا کوچکتر بودن، درست یا غلط بودن را چک کنیم، از عملگرهای منطقی بهره می جوییم. در قسمت «ساختارهای کنترلی»، به صورت مفصل عملگرهای منطقی توضیح داده خواهند شد.

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

پیش نیازها

کافی‌اسکریپت جهت نصب شدن، به روبی نیاز دارد. باید روبی را روی کامپیوتر خود نصب کرده باشید.

نصب

جهت نصب کافی اسکریپت، کافی است تا دستور زیر را در CMD (ویندوز) یا Terminal (لینوکس، مکینتاش، خانواده BSD ) وارد کنید :

 gem install coffee

یادتان باشد که در لینوکس، باید از sudo استفاده کنید.

نخستین برنامه شما در کافی‌اسکریپت

برای نوشتن نخستین برنامه خود، ابتدا یک فایل خالی به نام hello.coffee ایجاد کرده، سپس درون آن می نویسیم :

console.log "Hello, World!"

 

و سپس این دستور را اجرا میکنیم :

 coffee --compile hello.coffee

اکنون فایل hello.js در همان محل ایجاد شده، و محتوای این چنینی دارد :

console.log("Hello, World!");

 

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

با سلام خدمت شما دوستان عزیزم.مدتی هست که توفیق اجباری شده سی شارپ یاد گرفتم. دو کلاس Console و Convert در این زبان شدیدا باعث علاقه مند شدن من به این زبان شدن. با خودم تصمیم گرفتم این دو کلاس رو به روبی بیارم. در واقع، خواستم یک اسکریپت کوچیک بنویسم تا هم خودم روبی رو بهتر و بیشتر یاد بگیرم، هم این که به دوستان سی شارپ کار که میخوان روبی رو یاد بگیرن، کمک کنم! خیلی خوب، بریم سراغ این که این اسکریپت رو چه طور استفاده کنیم؟

دریافت از گیتهاب

خیلی ساده، اول git رو نصب کنید و سپس مخزن من رو کلون کنید :

git clone https://github.com/prp-e/rubysharp

 

استفاده از روبی شارپ

روبی شارپ صرفا یک اسکریپت هست، کنار اسکریپت اصلی کپی کنید و بعد با استفاده از فایل README موجود (که گیتهاب هم نشونش میده!) ، کد نویسی کنید.

یک برنامه ساده در روبی شارپ

#!/usr/bin/ruby
 
load 'rubysharp.rb'
 
prompt = Console.Wrtie('Enter your age: ')
 
print prompt
 
age = Convert.ToInt(Console.Read())
 
age = age * 356
 
print Console.WriteLine("You lived #{age} days")