Go Concepts - Operators: Difference between revisions
(→[]) |
(→[]) |
||
(54 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
=TO DEPLETE= | |||
<font color=darkkhaki> | |||
=External= | =External= | ||
* Go Specification - Operators: https://golang.org/ref/spec#Operators | * Go Specification - Operators: https://golang.org/ref/spec#Operators | ||
= | =+= | ||
Addition or concatenation. The compiler figures out the semantics based on the operands' types. | |||
Applies to: | |||
* [[Go Strings#Concatenation_Operator|strings]] | |||
=-= | =-= | ||
Line 14: | Line 17: | ||
Subtraction | Subtraction | ||
= | =<tt>&</tt>= | ||
<tt>&</tt> is the reference operator. For more details see [[Go_Concepts_-_Lexical_Structure#Reference_and_Dereference_Operators|reference and dereference operators]]. | |||
=/= | =/= | ||
Line 29: | Line 32: | ||
The assignment operator. | The assignment operator. | ||
= += = | |||
Addition and assignment. | |||
= == = | = == = | ||
The equality operator. Returns a boolean value. | |||
Can be used to test [[Go_Strings#String_Equality|string equality]]. | |||
= := = | = := = | ||
Short variable declaration operator. It does [[Go_Concepts_-_Lexical_Structure#Short_Variable_Declaration|variable declaration and assignment]] (initialization). The type of the variable is inferred from the right side expression. | |||
= <- = | = <- = | ||
<tt><-</tt> is the left arrow operator. It is used to [[Go_Channels#Placing_an_Instance_on_the_Channel|send]] and [[Go_Channels#Reading_an_Instance_from_the_Channel|receive]] messages on channels. | |||
=<tt>.</tt>= | |||
<tt>.</tt> is used for ''field access'' and ''method calls'': | |||
==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> | |||
Also see [[Go_Structs#Fields|fields]] | |||
==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;"> | |||
: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> | |||
Also see [[Go_Concepts_-_Functions#Methods|methods]]. | |||
==Function Call== | |||
Used to invoke a function from a package: | |||
<pre> | |||
fmt.Println(...) | |||
</pre> | |||
</font> |
Latest revision as of 18:21, 24 August 2023
TO DEPLETE
External
- Go Specification - Operators: https://golang.org/ref/spec#Operators
+
Addition or concatenation. The compiler figures out the semantics based on the operands' types.
Applies to:
-
Subtraction
&
& 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.
:=
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.
.
. is used for field access and method calls:
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.
Also see fields
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(),
Also see methods.
Function Call
Used to invoke a function from a package:
fmt.Println(...)