The go tour has this example for channels: https://tour.golang.org/concurrency/2
package main
import \"fmt\"
func sum(a []int, c chan int) {
sum := 0
f
You could say yes, but to say the "The channel c is modified in the sum function" isn't really the correct terminology. Channel sends and receives aren't really considered modifications.
Note that slices and maps behave in a similar way, see http://golang.org/doc/effective_go.html for more details.
Also "passed by reference" implies that an assignment could be made to c
in sum
that would change it's value (as opposed to it's underlying data) outside of sum, which is not the case.