If a line approaches the maximum character limit, always consider breaking it down into multiple statements / expressions instead of wrapping the line.
Break before operators.
Break before the . in chained method calls.
popupMsg("Inbox notification: You have "
+ newMsgs + &...
Vertical Whitespace
A single blank line should be used to separate…
Package declaration
Class declarations
Constructors
Methods
Static initializers
Instance initializers
…and may be used to separate logical groups of
import statements
fields
statements
Multiple consec...
One variable per declaration (and at most one declaration per line)
Square brackets of arrays should be at the type (String[] args) and not on the variable (String args[]).
Declare a local variable right before it is first used, and initialize it as close to the declaration as possible.
Runnable r = () -> System.out.println("Hello World");
Supplier<String> c = () -> "Hello World";
// Collection::contains is a simple unary method and its behavior is
// clear from the context. A method reference is preferred here.
appendFilter(goodStrings::cont...
return flag ? "yes" : "no";
String cmp = (flag1 != flag2) ? "not equal" : "equal";
// Don't do this
return (flag ? "yes" : "no");
Redundant grouping parentheses (i.e. parentheses that does not affect evaluation) may be used if t...
long l = 5432L;
int i = 0x123 + 0xABC;
byte b = 0b1010;
float f1 = 1 / 5432f;
float f2 = 0.123e4f;
double d1 = 1 / 5432d; // or 1 / 5432.0
double d2 = 0x1.3p2;
long literals should use the upper case letter L suffix.
Hexadecimal literals should use upper case letters A-F.
All other num...
You can also use line-height to center vertically a single line of text inside a container :
CSS
div {
height: 200px;
line-height: 200px;
}
That's quite ugly, but can be useful inside an <input /> element.
The line-height property works only when the text to be centered spans ...
Note the use of {{.}} to output the item within the template.
package main
import (
"fmt"
"os"
"text/template"
)
func main() {
const (
letter = `Dear {{.}}, How are you?`
)
tmpl, err := template.New("letter").Pa...
Note the use of {{range .}} and {{end}} to cycle over the collection.
package main
import (
"fmt"
"os"
"text/template"
)
func main() {
const (
letter = `Dear {{range .}}{{.}}, {{end}} How are you?`
)
tmpl, err := template...
In this example, a function map named funcMap is supplied to the template via the Funcs() method and then invoked inside the template. Here, the function increment() is used to get around the lack of a less than or equal function in the templating language. Note in the output how the final item in t...
Note how field values are obtained using {{.FieldName}}.
package main
import (
"fmt"
"os"
"text/template"
)
type Person struct {
FirstName string
LastName string
Street string
City string
State string
Zip...
Note the different package import.
package main
import (
"fmt"
"html/template"
"os"
)
type Person struct {
FirstName string
LastName string
Street string
City string
State string
Zip string
Ava...
First, here's what can happen when text/template is used for HTML. Note Harry's FirstName property).
package main
import (
"fmt"
"html/template"
"os"
)
type Person struct {
FirstName string
LastName string
Street string
Cit...
Using regular recursion, each recursive call pushes another entry onto the call stack. When the recursion is completed, the application has to pop each entry off all the way back down. If there are much recursive function calls it can end up with a huge stack.
Scala automatically removes the recurs...
Methods in Go are just like functions, except they have receiver.
Usually receiver is some kind of struct or type.
package main
import (
"fmt"
)
type Employee struct {
Name string
Age int
Rank int
}
func (empl *Employee) Promote() {
empl.Rank++
}
...
With methods in golang you can do method "chaining" passing pointer to method and returning pointer to the same struct like this:
package main
import (
"fmt"
)
type Employee struct {
Name string
Age int
Rank int
}
func (empl *Employee) Promote() *...
It is possible to specify log destination with something that statisfies io.Writer interface. With that we can log to file:
package main
import (
"log"
"os"
)
func main() {
logfile, err := os.OpenFile("test.log", os.O_RDWR|os.O_CREATE|os.O_APPEND,...
context.lineCap=capStyle // butt (default), round, square
Sets the cap style of line starting points and ending points.
butt, the default lineCap style, shows squared caps that do not extend beyond the line's starting and ending points.
round, shows rounded caps that extend beyond the ...
context.lineJoin=joinStyle // miter (default), round, bevel
Sets the style used to connect adjoining line segments.
miter, the default, joins line segments with a sharp joint.
round, joins line segments with a rounded joint.
bevel, joins line segments with a blunted joint.
<!doctype...