Tutorial by Examples: s

You can use a simple for-of loop to iterate a Set: const mySet = new Set([1, 2, 3]); for (const value of mySet) { console.log(value); // logs 1, 2 and 3 } When iterating over a set, it will always return values in the order they were first added to the set. For example: const set = new S...
Suppose you have a pojo class Person public class Person { public String name; public Person(String name) { this.name = name; } } And you want to parse it into a JSON array or a map of Person objects. Due to type erasure you cannot construct classes of List<Person&g...
Table locks can be an important tool for ENGINE=MyISAM, but are rarely useful for ENGINE=InnoDB. If you are tempted to use table locks with InnoDB, you should rethink how you are working with transactions. MySQL enables client sessions to acquire table locks explicitly for the purpose of cooperati...
To export the type and all its constructors, one must use the following syntax: module X (Person (..)) where So, for the following top-level definitions in a file called People.hs: data Person = Friend String | Foe deriving (Show, Eq, Ord) isFoe Foe = True isFoe _ = False This module d...
Haskell supports importing a subset of items from a module. import qualified Data.Stream (map) as D would only import map from Data.Stream, and calls to this function would require D.: D.map odd [1..] otherwise the compiler will try to use Prelude's map function.
Prelude often defines functions whose names are used elsewhere. Not hiding such imports (or using qualified imports where clashes occur) will cause compilation errors. Data.Stream defines functions named map, head and tail which normally clashes with those defined in Prelude. We can hide those impo...
When multiple modules define the same functions by name, the compiler will complain. In such cases (or to improve readability), we can use a qualified import: import qualified Data.Stream as D Now we can prevent ambiguity compiler errors when we use map, which is defined in Prelude and Data.Stre...
zip takes two lists and returns a list of corresponding pairs: zip [] _ = [] zip _ [] = [] zip (a:as) (b:bs) = (a,b) : zip as bs > zip [1,3,5] [2,4,6] > [(1,2),(3,4),(5,6)] Zipping two lists with a function: zipWith f [] _ = [] zipWith f _ [] =...
C99 Macros with variadic args: Let's say you want to create some print-macro for debugging your code, let's take this macro as an example: #define debug_print(msg) printf("%s:%d %s", __FILE__, __LINE__, msg) Some examples of usage: The function somefunc() returns -1 if failed and 0 ...
Convert in uppercase the string argument Syntax: UPPER(str) UPPER('fOoBar') -- 'FOOBAR' UCASE('fOoBar') -- 'FOOBAR'
To generalize type_trait creation:based on SFINAE there are experimental traits detected_or, detected_t, is_detected. With template parameters typename Default, template <typename...> Op and typename ... Args: is_detected: alias of std::true_type or std::false_type depending of the validi...
To concatenate the value of two or more variables into a single string and print it as the output, we need to make use of interpolation. The following Less code, #demo:after { @var1: Hello; @var2: World!!!; content: "@{var1} @{var2}"; } when compiled would set "Hello Wo...
Native Canvas API does not have a method to wrap text onto the next line when a desired maximum width is reached. This example wraps text into paragraphs. function wrapText(text, x, y, maxWidth, fontSize, fontFace){ var firstY=y; var words = text.split(' '); var line = ''; var lineHeigh...
This example draws text paragraphs into any portions of the canvas that have opaque pixels. It works by finding the next block of opaque pixels that is large enough to contain the next specified word and filling that block with the specified word. The opaque pixels can come from any source: Path d...
Classes, structs, enums and all their methods are internal by default. This means they can be only accessed from the same module. The test cases are in a different target an this means they are in a different module. To be able to access the method you want to test, you need to import the module to ...
Some attributes are directly accessible as properties of the element (e.g. alt, href, id, title and value). document.querySelector("a").href = "#top"; Other attributes, including data-attributes can be set as follows: document.querySelector("a").setAttribute("...
// Add observer let observer = NSNotificationCenter.defaultCenter().addObserverForName("nameOfTheNotification", object: nil, queue: nil) { (notification) in // Do operations with the notification in this block } // Remove observer NSNotificationCenter.defaultCenter().removeObser...
In its simplest form supported by all versions of bash, case statement executes the case that matches the pattern. ;; operator breaks after the first match, if any. #!/bin/bash var=1 case $var in 1) echo "Antartica" ;; 2) echo "Brazil" ;; 3) echo "Cat&qu...
4.0 Since bash 4.0, a new operator ;& was introduced which provides fall through mechanism. #!/bin/bash var=1 case $var in 1) echo "Antartica" ;& 2) echo "Brazil" ;& 3) echo "Cat" ;& esac Outputs: Antartica Brazil Cat ...
4.0 Since Bash 4.0, another operator ;;& was introduced which also provides fall through only if the patterns in subsequent case statement(s), if any, match. #!/bin/bash var=abc case $var in a*) echo "Antartica" ;;& xyz) echo "Brazil" ;;& *b*) ...

Page 566 of 1057