| 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 |