3.0
let string = "My fantastic string"
var index = string.startIndex
while index != string.endIndex {
print(string[index])
index = index.successor()
}
Note: endIndex is after the end of the string (i.e. string[string.endIndex] is an error, but string[string.startIndex] i...
[1, 2, [[3, 4], [5]], 6].flatten # => [1, 2, 3, 4, 5, 6]
If you have a multi-dimensional array and you need to make it a simple (i.e. one-dimensional) array, you can use the #flatten method.
A common use for enumerators is for switch statements and so they commonly appear in state machines. In fact a useful feature of switch statements with enumerations is that if no default statement is included for the switch, and not all values of the enum have been utilized, the compiler will issue ...
Note:
Everything below applies to the str.format method, as well as the
format function. In the text below, the two are interchangeable.
For every value which is passed to the format function, Python looks for a __format__ method for that argument. Your own custom class can therefore have th...
// RawRepresentable has an associatedType RawValue.
// For this struct, we will make the compiler infer the type
// by implementing the rawValue variable with a type of String
//
// Compiler infers RawValue = String without needing typealias
//
struct NotificationName: RawRepresentable {
...
Select the .xcdatamodeld file. You will notice you have no
entities. You will have to create one yourself. At the bottom of
Xcode you will notice a button that says "Add Entity" click it and
you will have a new entity for you to work with on the project.
In this step there are ...
With Gson, you can read JSON dataset and map them to a custom class MyClass.
Since Gson is not serializable, each executor needs its own Gson object. Also, MyClass must be serializable in order to pass it between executors.
Note that the file(s) that is offered as a json file is not a typical JSON...
Pattern matching allows to deconstruct complex values and it is by no way limited to the “outer most” level of the representation of a value. To illustrate this, we implement the function transforming a boolean expression into a boolean expression where all negations are only on atoms, the so calle...
Pattern matching can be used to deconstruct records. We illustrate this with a record type representing locations in a text file, e.g. the source code of a program.
type location = {
filename : string;
line: int;
column: int;
offset: int;
}
A value x of type location can be deconstr...
We prepare a file called reverser.ml with the following contents:
let acc = ref [] in
try
while true do
acc := read_line () :: !acc;
done
with
End_of_file -> print_string (String.concat "\n" !acc)
We then compile our program using ...
The List.fold_left and List.fold_right functions are higher-order functions that implement the outer logic of list aggregation. Aggregating a list, sometimes also referred to as reducing a list, means computing a value derived from the sequential inspection of all items in that list.
The documenta...
There are several additional attributes that the Volley NetworkImageView adds to the standard ImageView. However, these attributes can only be set in code. The following is an example of how to make an extension class that will pick up the attributes from your XML layout file and apply them to the N...
In Elm, reducing functions are called "folds", and there are two standard methods to "fold" values up: from the left, foldl, and from the right, foldr.
> List.foldl (+) 0 [1,2,3]
6 : number
The arguments to foldl and foldr are:
reducing function: newValue -> accumul...
A reference to an option &Option<T> cannot be unwrapped if the type T is not copyable. The solution is to change the option to &Option<&T> using as_ref().
Rust forbids transferring of ownership of objects while the objects are borrowed. When the Option itself is borrowed (&a...
Woocommerce is a plugin for WordPress and can be installed like any other WordPress plugin. WooCommerce can only be installed on self hosted installations of WordPress, it cannot be installed onto a site hosted by the wordpress.com service.
If you don't have WordPress installed for your website, fo...
localStorage, sessionStorage are JavaScript Objects and you can treat them as such.
Instead of using Storage Methods like .getItem(), .setItem(), etc… here's a simpler alternative:
// Set
localStorage.greet = "Hi!"; // Same as: window.localStorage.setItem("greet", "Hi!&qu...
Type casting is done with either the as operator:
var chair:Chair = furniture as Chair;
Or by wrapping the value in Type():
var chair:Chair = Chair(furniture);
If the cast fails with as, the result of that cast is null. If the cast fails by wrapping in Type(), a TypeError is thrown.
You can tell the compiler the type of a value by annotating it with :Type:
var value:int = 10; // A property "value" of type "int".
Function parameters and return types can also be annotated:
// This function accepts two ints and returns an int.
function sum(a:int, b:int):i...