mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
all: remove some double spaces from comments
Went mainly for the ones that make no sense, such as the ones mid-sentence or after commas. Change-Id: Ie245d2c19cc7428a06295635cf6a9482ade25ff0 Reviewed-on: https://go-review.googlesource.com/57293 Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Daniel Martí <mvdan@mvdan.cc> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
parent
bad6b6fa91
commit
99da8730b0
26 changed files with 32 additions and 32 deletions
|
|
@ -666,7 +666,7 @@ func (p *Parser) asmInstruction(op obj.As, cond string, a []obj.Addr) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if p.arch.Family == sys.AMD64 {
|
if p.arch.Family == sys.AMD64 {
|
||||||
// 4 operand instruction have form ymm1, ymm2, ymm3/m256, imm8
|
// 4 operand instruction have form ymm1, ymm2, ymm3/m256, imm8
|
||||||
// So From3 is always just a register, so we store imm8 in Offset field,
|
// So From3 is always just a register, so we store imm8 in Offset field,
|
||||||
// to avoid increasing size of Prog.
|
// to avoid increasing size of Prog.
|
||||||
prog.From = a[1]
|
prog.From = a[1]
|
||||||
|
|
|
||||||
|
|
@ -419,7 +419,7 @@ func stringVal(tv types.TypeAndValue) (string, bool) {
|
||||||
// formatIter iterates through the string s in increasing
|
// formatIter iterates through the string s in increasing
|
||||||
// index order and calls f for each format specifier '%..v'.
|
// index order and calls f for each format specifier '%..v'.
|
||||||
// The arguments for f describe the specifier's index range.
|
// The arguments for f describe the specifier's index range.
|
||||||
// If a format specifier contains a "*", f is called with
|
// If a format specifier contains a "*", f is called with
|
||||||
// the index range for "*" alone, before being called for
|
// the index range for "*" alone, before being called for
|
||||||
// the entire specifier. The result of f is the index of
|
// the entire specifier. The result of f is the index of
|
||||||
// the rune at which iteration continues.
|
// the rune at which iteration continues.
|
||||||
|
|
|
||||||
|
|
@ -878,7 +878,7 @@ func ssaGenValue(s *gc.SSAGenState, v *ssa.Value) {
|
||||||
case ssa.OpAMD64LoweredNilCheck:
|
case ssa.OpAMD64LoweredNilCheck:
|
||||||
// Issue a load which will fault if the input is nil.
|
// Issue a load which will fault if the input is nil.
|
||||||
// TODO: We currently use the 2-byte instruction TESTB AX, (reg).
|
// TODO: We currently use the 2-byte instruction TESTB AX, (reg).
|
||||||
// Should we use the 3-byte TESTB $0, (reg) instead? It is larger
|
// Should we use the 3-byte TESTB $0, (reg) instead? It is larger
|
||||||
// but it doesn't have false dependency on AX.
|
// but it doesn't have false dependency on AX.
|
||||||
// Or maybe allocate an output register and use MOVL (reg),reg2 ?
|
// Or maybe allocate an output register and use MOVL (reg),reg2 ?
|
||||||
// That trades clobbering flags for clobbering a register.
|
// That trades clobbering flags for clobbering a register.
|
||||||
|
|
|
||||||
|
|
@ -77,7 +77,7 @@ func convT2Istring(tab *byte, elem *any) (ret any)
|
||||||
func convT2Islice(tab *byte, elem *any) (ret any)
|
func convT2Islice(tab *byte, elem *any) (ret any)
|
||||||
func convT2Inoptr(tab *byte, elem *any) (ret any)
|
func convT2Inoptr(tab *byte, elem *any) (ret any)
|
||||||
|
|
||||||
// interface type assertions x.(T)
|
// interface type assertions x.(T)
|
||||||
func assertE2I(typ *byte, iface any) (ret any)
|
func assertE2I(typ *byte, iface any) (ret any)
|
||||||
func assertE2I2(typ *byte, iface any) (ret any, b bool)
|
func assertE2I2(typ *byte, iface any) (ret any, b bool)
|
||||||
func assertI2I(typ *byte, iface any) (ret any)
|
func assertI2I(typ *byte, iface any) (ret any)
|
||||||
|
|
|
||||||
|
|
@ -247,7 +247,7 @@ func convlit1(n *Node, t *types.Type, explicit bool, reuse canReuseNode) *Node {
|
||||||
|
|
||||||
return n
|
return n
|
||||||
|
|
||||||
// target is invalid type for a constant? leave alone.
|
// target is invalid type for a constant? leave alone.
|
||||||
case OLITERAL:
|
case OLITERAL:
|
||||||
if !okforconst[t.Etype] && n.Type.Etype != TNIL {
|
if !okforconst[t.Etype] && n.Type.Etype != TNIL {
|
||||||
return defaultlitreuse(n, nil, reuse)
|
return defaultlitreuse(n, nil, reuse)
|
||||||
|
|
|
||||||
|
|
@ -769,7 +769,7 @@ func isDriveLetter(b byte) bool {
|
||||||
return 'a' <= b && b <= 'z' || 'A' <= b && b <= 'Z'
|
return 'a' <= b && b <= 'z' || 'A' <= b && b <= 'Z'
|
||||||
}
|
}
|
||||||
|
|
||||||
// is this path a local name? begins with ./ or ../ or /
|
// is this path a local name? begins with ./ or ../ or /
|
||||||
func islocalname(name string) bool {
|
func islocalname(name string) bool {
|
||||||
return strings.HasPrefix(name, "/") ||
|
return strings.HasPrefix(name, "/") ||
|
||||||
runtime.GOOS == "windows" && len(name) >= 3 && isDriveLetter(name[0]) && name[1] == ':' && name[2] == '/' ||
|
runtime.GOOS == "windows" && len(name) >= 3 && isDriveLetter(name[0]) && name[1] == ':' && name[2] == '/' ||
|
||||||
|
|
|
||||||
|
|
@ -3373,7 +3373,7 @@ func (s *state) canSSA(n *Node) bool {
|
||||||
return false
|
return false
|
||||||
case PPARAMOUT:
|
case PPARAMOUT:
|
||||||
if s.hasdefer {
|
if s.hasdefer {
|
||||||
// TODO: handle this case? Named return values must be
|
// TODO: handle this case? Named return values must be
|
||||||
// in memory so that the deferred function can see them.
|
// in memory so that the deferred function can see them.
|
||||||
// Maybe do: if !strings.HasPrefix(n.String(), "~") { return false }
|
// Maybe do: if !strings.HasPrefix(n.String(), "~") { return false }
|
||||||
// Or maybe not, see issue 18860. Even unnamed return values
|
// Or maybe not, see issue 18860. Even unnamed return values
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,7 @@ func copySource(v *Value) *Value {
|
||||||
// but we take some extra care to make sure we
|
// but we take some extra care to make sure we
|
||||||
// don't get stuck in an infinite loop.
|
// don't get stuck in an infinite loop.
|
||||||
// Infinite copy loops may happen in unreachable code.
|
// Infinite copy loops may happen in unreachable code.
|
||||||
// (TODO: or can they? Needs a test.)
|
// (TODO: or can they? Needs a test.)
|
||||||
slow := w
|
slow := w
|
||||||
var advance bool
|
var advance bool
|
||||||
for w.Op == OpCopy {
|
for w.Op == OpCopy {
|
||||||
|
|
|
||||||
|
|
@ -884,7 +884,7 @@ func (s *regAllocState) regalloc(f *Func) {
|
||||||
// Decide on registers for phi ops. Use the registers determined
|
// Decide on registers for phi ops. Use the registers determined
|
||||||
// by the primary predecessor if we can.
|
// by the primary predecessor if we can.
|
||||||
// TODO: pick best of (already processed) predecessors?
|
// TODO: pick best of (already processed) predecessors?
|
||||||
// Majority vote? Deepest nesting level?
|
// Majority vote? Deepest nesting level?
|
||||||
phiRegs = phiRegs[:0]
|
phiRegs = phiRegs[:0]
|
||||||
var phiUsed regMask
|
var phiUsed regMask
|
||||||
for _, v := range phis {
|
for _, v := range phis {
|
||||||
|
|
|
||||||
|
|
@ -728,7 +728,7 @@ func ssaGenValue(s *gc.SSAGenState, v *ssa.Value) {
|
||||||
case ssa.Op386LoweredNilCheck:
|
case ssa.Op386LoweredNilCheck:
|
||||||
// Issue a load which will fault if the input is nil.
|
// Issue a load which will fault if the input is nil.
|
||||||
// TODO: We currently use the 2-byte instruction TESTB AX, (reg).
|
// TODO: We currently use the 2-byte instruction TESTB AX, (reg).
|
||||||
// Should we use the 3-byte TESTB $0, (reg) instead? It is larger
|
// Should we use the 3-byte TESTB $0, (reg) instead? It is larger
|
||||||
// but it doesn't have false dependency on AX.
|
// but it doesn't have false dependency on AX.
|
||||||
// Or maybe allocate an output register and use MOVL (reg),reg2 ?
|
// Or maybe allocate an output register and use MOVL (reg),reg2 ?
|
||||||
// That trades clobbering flags for clobbering a register.
|
// That trades clobbering flags for clobbering a register.
|
||||||
|
|
|
||||||
|
|
@ -528,7 +528,7 @@ func rewriteToPcrel(ctxt *obj.Link, p *obj.Prog, newprog obj.ProgAlloc) {
|
||||||
var dst int16 = REG_CX
|
var dst int16 = REG_CX
|
||||||
if (p.As == ALEAL || p.As == AMOVL) && p.To.Reg != p.From.Reg && p.To.Reg != p.From.Index {
|
if (p.As == ALEAL || p.As == AMOVL) && p.To.Reg != p.From.Reg && p.To.Reg != p.From.Index {
|
||||||
dst = p.To.Reg
|
dst = p.To.Reg
|
||||||
// Why? See the comment near the top of rewriteToUseGot above.
|
// Why? See the comment near the top of rewriteToUseGot above.
|
||||||
// AMOVLs might be introduced by the GOT rewrites.
|
// AMOVLs might be introduced by the GOT rewrites.
|
||||||
}
|
}
|
||||||
q := obj.Appendp(p, newprog)
|
q := obj.Appendp(p, newprog)
|
||||||
|
|
|
||||||
|
|
@ -81,7 +81,7 @@ func (f *goobjFile) symbols() ([]Sym, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *goobjFile) pcln() (textStart uint64, symtab, pclntab []byte, err error) {
|
func (f *goobjFile) pcln() (textStart uint64, symtab, pclntab []byte, err error) {
|
||||||
// Should never be called. We implement Liner below, callers
|
// Should never be called. We implement Liner below, callers
|
||||||
// should use that instead.
|
// should use that instead.
|
||||||
return 0, nil, nil, fmt.Errorf("pcln not available in go object file")
|
return 0, nil, nil, fmt.Errorf("pcln not available in go object file")
|
||||||
}
|
}
|
||||||
|
|
@ -90,7 +90,7 @@ func (f *goobjFile) pcln() (textStart uint64, symtab, pclntab []byte, err error)
|
||||||
// Returns "",0,nil if unknown.
|
// Returns "",0,nil if unknown.
|
||||||
// This function implements the Liner interface in preference to pcln() above.
|
// This function implements the Liner interface in preference to pcln() above.
|
||||||
func (f *goobjFile) PCToLine(pc uint64) (string, int, *gosym.Func) {
|
func (f *goobjFile) PCToLine(pc uint64) (string, int, *gosym.Func) {
|
||||||
// TODO: this is really inefficient. Binary search? Memoize last result?
|
// TODO: this is really inefficient. Binary search? Memoize last result?
|
||||||
var arch *sys.Arch
|
var arch *sys.Arch
|
||||||
for _, a := range sys.Archs {
|
for _, a := range sys.Archs {
|
||||||
if a.Name == f.goobj.Arch {
|
if a.Name == f.goobj.Arch {
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,7 @@ func NewDecoder(r io.Reader) *Decoder {
|
||||||
|
|
||||||
// recvType loads the definition of a type.
|
// recvType loads the definition of a type.
|
||||||
func (dec *Decoder) recvType(id typeId) {
|
func (dec *Decoder) recvType(id typeId) {
|
||||||
// Have we already seen this type? That's an error
|
// Have we already seen this type? That's an error
|
||||||
if id < firstUserId || dec.wireType[id] != nil {
|
if id < firstUserId || dec.wireType[id] != nil {
|
||||||
dec.err = errors.New("gob: duplicate type received")
|
dec.err = errors.New("gob: duplicate type received")
|
||||||
return
|
return
|
||||||
|
|
|
||||||
|
|
@ -508,7 +508,7 @@ func (d *decodeState) array(v reflect.Value) {
|
||||||
switch v.Kind() {
|
switch v.Kind() {
|
||||||
case reflect.Interface:
|
case reflect.Interface:
|
||||||
if v.NumMethod() == 0 {
|
if v.NumMethod() == 0 {
|
||||||
// Decoding into nil interface? Switch to non-reflect code.
|
// Decoding into nil interface? Switch to non-reflect code.
|
||||||
v.Set(reflect.ValueOf(d.arrayInterface()))
|
v.Set(reflect.ValueOf(d.arrayInterface()))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
@ -612,7 +612,7 @@ func (d *decodeState) object(v reflect.Value) {
|
||||||
}
|
}
|
||||||
v = pv
|
v = pv
|
||||||
|
|
||||||
// Decoding into nil interface? Switch to non-reflect code.
|
// Decoding into nil interface? Switch to non-reflect code.
|
||||||
if v.Kind() == reflect.Interface && v.NumMethod() == 0 {
|
if v.Kind() == reflect.Interface && v.NumMethod() == 0 {
|
||||||
v.Set(reflect.ValueOf(d.objectInterface()))
|
v.Set(reflect.ValueOf(d.objectInterface()))
|
||||||
return
|
return
|
||||||
|
|
@ -1190,7 +1190,7 @@ func unquoteBytes(s []byte) (t []byte, ok bool) {
|
||||||
b := make([]byte, len(s)+2*utf8.UTFMax)
|
b := make([]byte, len(s)+2*utf8.UTFMax)
|
||||||
w := copy(b, s[0:r])
|
w := copy(b, s[0:r])
|
||||||
for r < len(s) {
|
for r < len(s) {
|
||||||
// Out of room? Can only happen if s is full of
|
// Out of room? Can only happen if s is full of
|
||||||
// malformed UTF-8 and we're replacing each
|
// malformed UTF-8 and we're replacing each
|
||||||
// byte with RuneError.
|
// byte with RuneError.
|
||||||
if w >= len(b)-2*utf8.UTFMax {
|
if w >= len(b)-2*utf8.UTFMax {
|
||||||
|
|
|
||||||
|
|
@ -160,7 +160,7 @@ func (e UnmarshalError) Error() string { return string(e) }
|
||||||
// UnmarshalXML must consume exactly one XML element.
|
// UnmarshalXML must consume exactly one XML element.
|
||||||
// One common implementation strategy is to unmarshal into
|
// One common implementation strategy is to unmarshal into
|
||||||
// a separate value with a layout matching the expected XML
|
// a separate value with a layout matching the expected XML
|
||||||
// using d.DecodeElement, and then to copy the data from
|
// using d.DecodeElement, and then to copy the data from
|
||||||
// that value into the receiver.
|
// that value into the receiver.
|
||||||
// Another common strategy is to use d.Token to process the
|
// Another common strategy is to use d.Token to process the
|
||||||
// XML object one token at a time.
|
// XML object one token at a time.
|
||||||
|
|
|
||||||
|
|
@ -646,13 +646,13 @@ func (f *FlagSet) UintVar(p *uint, name string, value uint, usage string) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// UintVar defines a uint flag with specified name, default value, and usage string.
|
// UintVar defines a uint flag with specified name, default value, and usage string.
|
||||||
// The argument p points to a uint variable in which to store the value of the flag.
|
// The argument p points to a uint variable in which to store the value of the flag.
|
||||||
func UintVar(p *uint, name string, value uint, usage string) {
|
func UintVar(p *uint, name string, value uint, usage string) {
|
||||||
CommandLine.Var(newUintValue(value, p), name, usage)
|
CommandLine.Var(newUintValue(value, p), name, usage)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Uint defines a uint flag with specified name, default value, and usage string.
|
// Uint defines a uint flag with specified name, default value, and usage string.
|
||||||
// The return value is the address of a uint variable that stores the value of the flag.
|
// The return value is the address of a uint variable that stores the value of the flag.
|
||||||
func (f *FlagSet) Uint(name string, value uint, usage string) *uint {
|
func (f *FlagSet) Uint(name string, value uint, usage string) *uint {
|
||||||
p := new(uint)
|
p := new(uint)
|
||||||
f.UintVar(p, name, value, usage)
|
f.UintVar(p, name, value, usage)
|
||||||
|
|
@ -660,7 +660,7 @@ func (f *FlagSet) Uint(name string, value uint, usage string) *uint {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Uint defines a uint flag with specified name, default value, and usage string.
|
// Uint defines a uint flag with specified name, default value, and usage string.
|
||||||
// The return value is the address of a uint variable that stores the value of the flag.
|
// The return value is the address of a uint variable that stores the value of the flag.
|
||||||
func Uint(name string, value uint, usage string) *uint {
|
func Uint(name string, value uint, usage string) *uint {
|
||||||
return CommandLine.Uint(name, value, usage)
|
return CommandLine.Uint(name, value, usage)
|
||||||
}
|
}
|
||||||
|
|
@ -935,7 +935,7 @@ func (f *FlagSet) Parsed() bool {
|
||||||
return f.parsed
|
return f.parsed
|
||||||
}
|
}
|
||||||
|
|
||||||
// Parse parses the command-line flags from os.Args[1:]. Must be called
|
// Parse parses the command-line flags from os.Args[1:]. Must be called
|
||||||
// after all flags are defined and before flags are accessed by the program.
|
// after all flags are defined and before flags are accessed by the program.
|
||||||
func Parse() {
|
func Parse() {
|
||||||
// Ignore errors; CommandLine is set for ExitOnError.
|
// Ignore errors; CommandLine is set for ExitOnError.
|
||||||
|
|
|
||||||
|
|
@ -837,7 +837,7 @@ func (p *pp) printValue(value reflect.Value, verb rune, depth int) {
|
||||||
p.buf.WriteByte(']')
|
p.buf.WriteByte(']')
|
||||||
}
|
}
|
||||||
case reflect.Ptr:
|
case reflect.Ptr:
|
||||||
// pointer to array or slice or struct? ok at top level
|
// pointer to array or slice or struct? ok at top level
|
||||||
// but not embedded (avoid loops)
|
// but not embedded (avoid loops)
|
||||||
if depth == 0 && f.Pointer() != 0 {
|
if depth == 0 && f.Pointer() != 0 {
|
||||||
switch a := f.Elem(); a.Kind() {
|
switch a := f.Elem(); a.Kind() {
|
||||||
|
|
|
||||||
|
|
@ -1337,7 +1337,7 @@ func (cw *chunkWriter) writeHeader(p []byte) {
|
||||||
} else if hasCL {
|
} else if hasCL {
|
||||||
delHeader("Transfer-Encoding")
|
delHeader("Transfer-Encoding")
|
||||||
} else if w.req.ProtoAtLeast(1, 1) {
|
} else if w.req.ProtoAtLeast(1, 1) {
|
||||||
// HTTP/1.1 or greater: Transfer-Encoding has been set to identity, and no
|
// HTTP/1.1 or greater: Transfer-Encoding has been set to identity, and no
|
||||||
// content-length has been provided. The connection must be closed after the
|
// content-length has been provided. The connection must be closed after the
|
||||||
// reply is written, and no chunking is to be done. This is the setup
|
// reply is written, and no chunking is to be done. This is the setup
|
||||||
// recommended in the Server-Sent Events candidate recommendation 11,
|
// recommended in the Server-Sent Events candidate recommendation 11,
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,6 @@
|
||||||
|
|
||||||
package runtime
|
package runtime
|
||||||
|
|
||||||
// careful: cputicks is not guaranteed to be monotonic! In particular, we have
|
// careful: cputicks is not guaranteed to be monotonic! In particular, we have
|
||||||
// noticed drift between cpus on certain os/arch combinations. See issue 8976.
|
// noticed drift between cpus on certain os/arch combinations. See issue 8976.
|
||||||
func cputicks() int64
|
func cputicks() int64
|
||||||
|
|
|
||||||
|
|
@ -140,7 +140,7 @@ func notewakeup(n *note) {
|
||||||
case v == 0:
|
case v == 0:
|
||||||
// Nothing was waiting. Done.
|
// Nothing was waiting. Done.
|
||||||
case v == locked:
|
case v == locked:
|
||||||
// Two notewakeups! Not allowed.
|
// Two notewakeups! Not allowed.
|
||||||
throw("notewakeup - double wakeup")
|
throw("notewakeup - double wakeup")
|
||||||
default:
|
default:
|
||||||
// Must be the waiting m. Wake it up.
|
// Must be the waiting m. Wake it up.
|
||||||
|
|
|
||||||
|
|
@ -1235,7 +1235,7 @@ func gcStart(mode gcMode, trigger gcTrigger) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ok, we're doing it! Stop everybody else
|
// Ok, we're doing it! Stop everybody else
|
||||||
semacquire(&worldsema)
|
semacquire(&worldsema)
|
||||||
|
|
||||||
if trace.enabled {
|
if trace.enabled {
|
||||||
|
|
|
||||||
|
|
@ -680,7 +680,7 @@ func startpanic_m() {
|
||||||
exit(4)
|
exit(4)
|
||||||
fallthrough
|
fallthrough
|
||||||
default:
|
default:
|
||||||
// Can't even print! Just exit.
|
// Can't even print! Just exit.
|
||||||
exit(5)
|
exit(5)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -381,7 +381,7 @@ func Unquote(s string) (string, error) {
|
||||||
return "", ErrSyntax
|
return "", ErrSyntax
|
||||||
}
|
}
|
||||||
|
|
||||||
// Is it trivial? Avoid allocation.
|
// Is it trivial? Avoid allocation.
|
||||||
if !contains(s, '\\') && !contains(s, quote) {
|
if !contains(s, '\\') && !contains(s, quote) {
|
||||||
switch quote {
|
switch quote {
|
||||||
case '"':
|
case '"':
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ const (
|
||||||
magic64 = 0xdeddeadbeefbeef
|
magic64 = 0xdeddeadbeefbeef
|
||||||
)
|
)
|
||||||
|
|
||||||
// Do the 64-bit functions panic? If so, don't bother testing.
|
// Do the 64-bit functions panic? If so, don't bother testing.
|
||||||
var test64err = func() (err interface{}) {
|
var test64err = func() (err interface{}) {
|
||||||
defer func() {
|
defer func() {
|
||||||
err = recover()
|
err = recover()
|
||||||
|
|
|
||||||
|
|
@ -614,7 +614,7 @@ func (src *Source) ExternalImport(pkg string) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// ParseFiles parses files listed in fs and extracts all syscall
|
// ParseFiles parses files listed in fs and extracts all syscall
|
||||||
// functions listed in sys comments. It returns source files
|
// functions listed in sys comments. It returns source files
|
||||||
// and functions collection *Source if successful.
|
// and functions collection *Source if successful.
|
||||||
func ParseFiles(fs []string) (*Source, error) {
|
func ParseFiles(fs []string) (*Source, error) {
|
||||||
src := &Source{
|
src := &Source{
|
||||||
|
|
|
||||||
|
|
@ -176,7 +176,7 @@ type Pointer *ArbitraryType
|
||||||
// Sizeof takes an expression x of any type and returns the size in bytes
|
// Sizeof takes an expression x of any type and returns the size in bytes
|
||||||
// of a hypothetical variable v as if v was declared via var v = x.
|
// of a hypothetical variable v as if v was declared via var v = x.
|
||||||
// The size does not include any memory possibly referenced by x.
|
// The size does not include any memory possibly referenced by x.
|
||||||
// For instance, if x is a slice, Sizeof returns the size of the slice
|
// For instance, if x is a slice, Sizeof returns the size of the slice
|
||||||
// descriptor, not the size of the memory referenced by the slice.
|
// descriptor, not the size of the memory referenced by the slice.
|
||||||
func Sizeof(x ArbitraryType) uintptr
|
func Sizeof(x ArbitraryType) uintptr
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue