Go Concepts - Operators: Difference between revisions
(→.) |
(→.) |
||
Line 76: | Line 76: | ||
Used for: | Used for: | ||
==Field Access== | |||
Used to access of a <tt>struct</tt>'s fields. | |||
<blockquote style="background-color: Gold; border: solid thin Goldenrod;"> | |||
:When used for field access, <tt>.</tt> can be used both with a struct value or a pointer to that struct value. In both situations it has the same semantics. | |||
</blockquote> | |||
==Method Call== | |||
Used to invoke a method on the ''instance'' of the type the [[Go_Concepts_-_Functions#Method_Invocation|method]] is associated with, or on the ''pointer'' to an instance of the type the method is associated with. | |||
<blockquote style="background-color: Gold; border: solid thin Goldenrod;"> | <blockquote style="background-color: Gold; border: solid thin Goldenrod;"> | ||
:When designating a method call, <tt>.</tt> can be used both with a value or a pointer. In both situations it has the same semantics. If <tt>ptr</tt> is a pointer, then <tt>ptr.m()</tt> is a shorthand for <tt>(&ptr).m()</tt>, | :When designating a method call, <tt>.</tt> can be used both with a value or a pointer. In both situations it has the same semantics. If <tt>ptr</tt> is a pointer, then <tt>ptr.m()</tt> is a shorthand for <tt>(&ptr).m()</tt>, | ||
</blockquote> | </blockquote> |
Revision as of 19:37, 12 April 2016
External
- Go Specification - Operators: https://golang.org/ref/spec#Operators
Internal
+
Addition or concatenation. The compiler figures out the semantics based on the operands' types.
Applies to:
-
Subtraction
*
* is the multiplication operator.
As "address operator", * is used with pointers as dereference operator. For more details see reference and dereference operators.
* designates pointer types.
&
& is the reference operator. For more details see reference and dereference operators.
/
Division
%
Remainder
=
The assignment operator.
+=
Addition and assignment.
==
The equality operator. Returns a boolean value.
Can be used to test string equality.
[]
"[]" is the indexing operator. If the index is out of bounds, the runtime generates a run-time panic:
panic: runtime error: index out of range
Applies to:
:=
Short variable declaration operator. It does variable declaration and assignment (initialization). The type of the variable is inferred from the right side expression.
<-
<- is the left arrow operator. It is used to send and receive messages on channels.
.
Used for:
Field Access
Used to access of a struct's fields.
- When used for field access, . can be used both with a struct value or a pointer to that struct value. In both situations it has the same semantics.
Method Call
Used to invoke a method on the instance of the type the method is associated with, or on the pointer to an instance of the type the method is associated with.
- When designating a method call, . can be used both with a value or a pointer. In both situations it has the same semantics. If ptr is a pointer, then ptr.m() is a shorthand for (&ptr).m(),