Decimal | 100 0d100 |
Hexadecimal | 0x1FF |
Binary | 0b10101010 |
Octal | 0o1234567 |
Operators
Operatior
|
Description | Example |
+ | Add | a + b will give 30 |
− | Subtract | a - b will give -10 |
* | Multiply | a * b will give 200 |
/ | Divide | b / a will give 2 |
% | Modulus − Get Remainder | b % a will give 0 |
** | Exponent − Power | a**b will give 10 to the power 20 |
= | Simple assignment operator, assigns values from right side operands to left side operand. | c = a + b will assign the value of a + b into c |
+= | Add AND assignment operator, adds right operand to the left operand and assign the result to left operand. | c += a is equivalent to c = c + a |
-= | Subtract AND assignment operator, subtracts right operand from the left operand and assign the result to left operand. | c -= a is equivalent to c = c - a |
*= | Multiply AND assignment operator, multiplies right operand with the left operand and assign the result to left operand. | c *= a is equivalent to c = c * a |
/= | Divide AND assignment operator, divides left operand with the right operand and assign the result to left operand. | c /= a is equivalent to c = c / a |
%= | Modulus AND assignment operator, takes modulus using two operands and assign the result to left operand. | c %= a is equivalent to c = c % a |
**= | Exponent AND assignment operator, performs exponential (power) calculation on operators and assign value to the left operand. | c **= a is equivalent to c = c ** a |
= | Simple assignment operator, assigns values from right side operands to left side operand. | c = a + b will assign the value of a + b into c |
+= | Add AND assignment operator, adds right operand to the left operand and assign the result to left operand. | c += a is equivalent to c = c + a |
-= | Subtract AND assignment operator, subtracts right operand from the left operand and assign the result to left operand. | c -= a is equivalent to c = c - a |
== | Checks if the value of two operands are equal or not, if yes then condition becomes true. | (a == b) is not true. |
=== | Used to test equality within a when clause of a case statement. | (1...10) === 5 returns true. |
!= | Checks if the value of two operands are equal or not, if values are not equal then condition becomes true. | (a != b) is true. |
> | Checks if the value of left operand is greater than the value of right operand, if yes then condition becomes true. | (a > b) is not true. |
< | Checks if the value of left operand is less than the value of right operand, if yes then condition becomes true. | (a < b) is true. |
>= | Checks if the value of left operand is greater than or equal to the value of right operand, if yes then condition becomes true. | (a >= b) is not true. |
<= | Checks if the value of left operand is less than or equal to the value of right operand, if yes then condition becomes true. | (a <= b) is true. |
<=> | Combined comparison operator. Returns 0 if first operand equals second, 1 if first operand is greater than the second and -1 if first operand is less than the second. | (a <=> b) returns -1. |
.eql? | True if the receiver and argument have both the same type and equal values. | 1 == 1.0 returns true, but 1.eql?(1.0) is false. |
equal? | True if the receiver and argument have the same object id. | if aObj is duplicate of bObj then aObj == bObj is true, a.equal?bObj is false but a.equal?aObj is true. |
=> | Hashmap literal definition | key1 => value1 |
& | Binary AND Operator copies a bit to the result if it exists in both operands. | (a & b) will give 12, which is 0000 1100 |
| | Binary OR Operator copies a bit if it exists in either operand. | (a | b) will give 61, which is 0011 1101 |
^ | Binary XOR Operator copies the bit if it is set in one operand but not both. | (a ^ b) will give 49, which is 0011 0001 |
~ | Binary Ones Complement Operator is unary and has the effect of 'flipping' bits. | (~a ) will give -61, which is 1100 0011 in 2's complement form due to a signed binary number. |
<< | Binary Left Shift Operator. The left operands value is moved left by the number of bits specified by the right operand. | a << 2 will give 240, which is 1111 0000 |
>> | Binary Right Shift Operator. The left operands value is moved right by the number of bits specified by the right operand. | a >> 2 will give 15, which is 0000 1111 |
? : | Conditional Expression | If Condition is true ? Then value X : Otherwise value Y |
.. | Creates a range from start point to end point inclusive. | 1..10 Creates a range from 1 to 10 inclusive. |
... | Creates a range from start point to end point exclusive. | 1...10 Creates a range from 1 to 9. |
=~ | matches a String against a regular expression, returns the position/index if found else nil | "Hello World" =~ /Wo/ |
!~ | 'Does not contain� | "Hello World" !~ /Mo/ |
Notes
Print Hello World | puts "Hello World!" |
Print Character | putc "!" |
String concatenation | str = "Billy" + " Bob" |
Rem statement | # puts "don't show this" |
Multiple commands on one line | test ="hello"; puts test |
Comma in numbers 10,000 | test =10_000;puts test |
Using Quotes in strings | puts "Quote: \"!" puts %(Quote: "!) |
Get user input | name=gets puts "Hello "+name |
Remove a newline | name=gets.chomp |
Print variable | puts "value = #{var}" puts "value = " + var v= var.to_s |
Loop | for i in 0..5 puts i end |
Loop | [1,2].each do |i| puts i end |
Loop Break | for i in 0..10 if i==5 break end puts i end |
Loop Next | |
While | i = 1 while i<=3 do puts i; i+=1 end |
until | begin i+=1 end until i>4 |
Break while | i = 0 while true do puts i; i+= 1 break if i>5 end |
If | if var<3 puts "Low" elsif var<10 puts "Mid" else puts "High" end |
If Not | unless 2==1 puts 'Not True' end |
case | case var when 1 puts "one" when 2..4 puts "2/3/4" else puts "something" end |
function with arg | def myfunc(param = "default",param2=123t) end myfunc(1,2) |
Return a value | def test return "Hello World" end def test2 "Goodbye cruel world" end puts test puts test2 |
set multiple objects to the same object | a=b=c |
create identifier as symbol object | :name |
Run a program | Load "File.rb" |
NULL / Empty object | nil |
INC / DEC | V+=1 V-=1 |
Convert object to string | to_s |
convert integer to float convert string to integer |
9 / 5.to_f "7".to_i |
New object | A= MyObj.new |
Class definition | class MyObj def initialize(name) @myname=name puts "Created "+name end end o = MyObj.new("Test") |
function of the class | #in MyObj def myname return @myname end puts "My Name is "+o.myname |
Local (instance var) | @var |
Class Var (Shared across all instances of class) |
class MyObj def initialize(name) @@myname=name puts "Created "+name end def name ; return @@myname ; end end o = MyObj.new("Test1") ; p = MyObj.new("Test2") puts o.name ; puts p.name |
Module (Prevents namespace clashes) |
module MyMod MyVar="Test" end puts MyMod::MyVar |
Include file (for modules) |
require
"/sources/mymod.rb" puts MyMod::MyVar |
Global var | $myglobal=1 |
Constant (upper case first letter |
Const=1 |
Current object | self |
Random Psuedorandom |
rand srand |
File load | File.open("testfile.txt") do |f| lines=f.readlines lines.each do |l| puts l end end |
Substring (mid) | test="<<<Hello>>>" puts test[3...8] puts test[-3,3] |
Length, Uppercase Lowercase |
puts test.length puts test.upcase puts test.downcase |
contains Instr | puts test =~ /llo/ |
Multiline string definition | str = <<TEST Line 1 Line 2 Line 3 TEST puts str |
2D Array | box=Array.new(3){ Array.new(3,'-') } box[0][0]="["; box[0][2]="["; box[2][0]="]"; box[2][2]="]" for y in 0..2 for x in 0..2 ; putc box[x][y] ; end puts "" end |
Paralell assignment | black,white=0,255 |