From 0c105ca0b23f5e5d83876d216be6a4812425954b Mon Sep 17 00:00:00 2001 From: Milo Gilad Date: Thu, 24 Aug 2017 16:10:16 -0400 Subject: Added arrays section --- vala.html.markdown | 65 +++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 54 insertions(+), 11 deletions(-) (limited to 'vala.html.markdown') diff --git a/vala.html.markdown b/vala.html.markdown index b6cbeb98..a8d90e47 100755 --- a/vala.html.markdown +++ b/vala.html.markdown @@ -1,7 +1,7 @@ --- language: vala contributors: - - ["Milo Gilad", "https://github.com/bigbash"] + - ["Milo Gilad", "https://github.com/Myl0g"] filename: LearnVala.vala --- @@ -12,6 +12,7 @@ Vala has aspects of Java and C#, so it'll be familiar to those who know either o [Read more here.](https://wiki.gnome.org/Projects/Vala) ```vala + // Single line comment /* Multiline @@ -21,31 +22,73 @@ Comment */ * Documentation comment */ -/* -Data Types -*/ +/* Data Types */ // Vala supports the data types supported by most other programming languages. char character = 'a' unichar unicode_character = 'u' // 32-bit unicode character -int i; // ints can also have guaranteed sizes (e.g. int64, uint64) -uint j; +int i = 2; // ints can also have guaranteed sizes (e.g. int64, uint64) +uint j = -6; // Won't compile; unsigned ints can only be positive long k; short l; ushort m; +string text = "Hello,"; // Note that the == operator will check string content +string verbatim = """This is a verbatim (a.k.a. raw) string. Special characters +(e.g. \n) are not interpreted. They may also be multiple lines long."""; -/* -Basic Syntax -*/ +// String Templates allow for easy string formatting +string string_template = @"$text world"; // "$text" evaluates to "Hello" + +int test = 5; +int test2 = 10; +string template2 = @"$(test * test2) is a number."; // Expression evaluation + +string template_slice = string_template[7:12]; // => "world" + +// Most data types have methods for parsing. + +bool parse_bool = bool.parse("false"); // => false +int parse_int = int.parse("-52"); +string parse_string = parse_int.to_string(); + +/* Basic I/O */ + +stdout.printf(parse_string); // Prints to console +string input = stdin.read_line(); // Gets input from console + +stderr.printf("Error message"); // Error printing + +/* Arrays */ + +int[] int_array = new int[10]; // Array of ints with 10 slots +int[] int_array2 = {5, 10, 15, 20}; // Can be created on-the-fly + +int[] array_slice = int_array2[1:3]; // Slice (copy of data) +unowned int[] array_slice_ref = int_array2[1:3]; // Reference to data + +// Multi-dimensional Arrays (defined with a number of commas in the brackets) + +int[,] multi_array = new int[6,4]; // 6 is the number of arrays, 4 is their size +int[,] multi_array2 = {{7, 4, 6, 4}, + {3, 2, 4, 6}, + {5, 9, 5, 1}}; +multi_array2[2,3] = 12; // 2 is the array, 3 is the index in the array -// Like in C#, scope is defined using braces. -// An object or reference is only valid between braces. +struct Closet { + public uint shirts; + public uint jackets; +} +enum HouseSize { + SMALL, + MODERATE, + BIG +} ``` -- cgit v1.2.3