Файловый менеджер - Редактировать - /usr/local/go/test/fixedbugs/bug324.dir/prog.go
Ðазад
// Copyright 2011 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package main import ( "./p" ) type Exported interface { private() } type Implementation struct{} func (p *Implementation) private() {} func main() { // nothing unusual here var x Exported x = new(Implementation) x.private() // main.Implementation.private() // same here - should be and is legal var px p.Exported px = p.X // this assignment is correctly illegal: // px.private undefined (cannot refer to unexported field or method private) // px.private() // this assignment is correctly illegal: // *Implementation does not implement p.Exported (missing p.private method) // px = new(Implementation) // this assignment is correctly illegal: // p.Exported does not implement Exported (missing private method) // x = px // this assignment unexpectedly compiles and then executes defer func() { recover() }() x = px.(Exported) println("should not get this far") // this is a legitimate call, but because of the previous assignment, // it invokes the method private in p! x.private() // p.Implementation.private() }
| ver. 1.1 | |
.
| PHP 8.4.18 | Ð“ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ñ Ñтраницы: 0 |
proxy
|
phpinfo
|
ÐаÑтройка