Tutorial by Examples: s

The trap is reset for subshells, so the sleep will still act on the SIGINT signal sent by ^C (usually by quitting), but the parent process (i.e. the shell script) won't. #!/bin/sh # Run a command on signal 2 (SIGINT, which is what ^C sends) sigint() { echo "Killed subshell!" } ...
You can use the trap command to "trap" signals; this is the shell equivalent of the signal() or sigaction() call in C and most other programming languages to catch signals. One of the most common uses of trap is to clean up temporary files on both an expected and unexpected exit. Unfortu...
int i = 42; i = i++; /* Assignment changes variable, post-increment as well */ int a = i++ + i--; Code like this often leads to speculations about the "resulting value" of i. Rather than specifying an outcome, however, the C standards specify that evaluating such an expression produc...
int foo(void) { /* do stuff */ /* no return here */ } int main(void) { /* Trying to use the (not) returned value causes UB */ int value = foo(); return 0; } When a function is declared to return a value then it has to do so on every possible code path through it. Undefined beh...
The ls command lists the contents of a specified directory, excluding dotfiles. If no directory is specified then, by default, the contents of the current directory are listed. Listed files are sorted alphabetically, by default, and aligned in columns if they don’t fit on one line. $ ls apt conf...
alias word='command' Invoking word will run command. Any arguments supplied to the alias are simply appended to the target of the alias: alias myAlias='some command --with --options' myAlias foo bar baz The shell will then execute: some command --with --options foo bar baz To include mul...
alias -p will list all the current aliases.
#include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char **argv) { /* Exit if no second argument is found. */ if (argc != 2) { puts("Argument missing."); return EXIT_FAILURE; } size_t len = str...
Sets are unordered collections of unique values. Unique values must be of the same type. var colors = Set<String>() You can declare a set with values by using the array literal syntax. var favoriteColors: Set<String> = ["Red", "Blue", "Green", "Blu...
println! (and its sibling, print!) provides a convenient mechanism for producing and printing text that contains dynamic data, similar to the printf family of functions found in many other languages. Its first argument is a format string, which dictates how the other arguments should be printed as t...
A simple function that does not accept any parameters and does not return any values: func SayHello() { fmt.Println("Hello!") }
A function can optionally declare a set of parameters: func SayHelloToMe(firstName, lastName string, age int) { fmt.Printf("Hello, %s %s!\n", firstName, lastName) fmt.Printf("You are %d", age) } Notice that the type for firstName is omitted because it is identical ...
A function can return one or more values to the caller: func AddAndMultiply(a, b int) (int, int) { return a+b, a*b } The second return value can also be the error var : import errors func Divide(dividend, divisor int) (int, error) { if divisor == 0 { return 0, errors.New(...
Return values can be assigned to a local variable. An empty return statement can then be used to return their current values. This is known as "naked" return. Naked return statements should be used only in short functions as they harm readability in longer functions: func Inverse(v float3...
A basic struct is declared as follows: type User struct { FirstName, LastName string Email string Age int } Each value is called a field. Fields are usually written one per line, with the field's name preceeding its type. Consecutive fields of the sa...
Struct fields whose names begin with an uppercase letter are exported. All other names are unexported. type Account struct { UserID int // exported accessToken string // unexported } Unexported fields can only be accessed by code within the same package. As such, if you are ev...
Composition provides an alternative to inheritance. A struct may include another type by name in its declaration: type Request struct { Resource string } type AuthenticatedRequest struct { Request Username, Password string } In the example above, AuthenticatedRequest will con...
Struct methods are very similar to functions: type User struct { name string } func (u User) Name() string { return u.name } func (u *User) SetName(newName string) { u.name = newName } The only difference is the addition of the method receiver. It may be declared either a...
Any function can be invoked as a goroutine by prefixing its invocation with the keyword go: func DoMultiply(x,y int) { // Simulate some hard work time.Sleep(time.Second * 1) fmt.Printf("Result: %d\n", x * y) } go DoMultiply(1,2) // first execution, non-blocking go DoMu...
The filter() method accepts a test function, and returns a new array containing only the elements of the original array that pass the test provided. // Suppose we want to get all odd number in an array: var numbers = [5, 32, 43, 4]; 5.1 var odd = numbers.filter(function(n) { return n % 2 !=...

Page 34 of 1057