Сценарий: Структура с вызовом метода и свойства другого объекта
Этот коммит содержится в:
родитель
74a6ab6231
коммит
56fe611154
2 изменённых файлов: 42 добавлений и 2 удалений
|
@ -87,8 +87,13 @@ func handleSelectorExpr(expr ast.Expr) string {
|
||||||
code := ""
|
code := ""
|
||||||
switch x := s.X.(type) {
|
switch x := s.X.(type) {
|
||||||
case *ast.Ident:
|
case *ast.Ident:
|
||||||
if isInMethod && x.Name == currentReceiverName {
|
if isInMethod {
|
||||||
code += "this->"
|
if x.Name == currentReceiverName {
|
||||||
|
code += "this"
|
||||||
|
} else {
|
||||||
|
code += handleIdentExpr(x)
|
||||||
|
}
|
||||||
|
code += "->"
|
||||||
} else {
|
} else {
|
||||||
code += handleIdentExpr(x)
|
code += handleIdentExpr(x)
|
||||||
code += "."
|
code += "."
|
||||||
|
|
|
@ -161,3 +161,38 @@ this->x=1;
|
||||||
this->x=this->y;
|
this->x=this->y;
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Сценарий: Структура с вызовом метода и свойства другого объекта
|
||||||
|
* Исходник:
|
||||||
|
```
|
||||||
|
package test
|
||||||
|
|
||||||
|
type device struct {
|
||||||
|
x int
|
||||||
|
}
|
||||||
|
|
||||||
|
func (d *device) doSomething() {
|
||||||
|
dev2.doSomethingElse()
|
||||||
|
}
|
||||||
|
func (d *device) doSomethingElse() {
|
||||||
|
dev2.x = 1
|
||||||
|
d.x = dev2.x
|
||||||
|
}
|
||||||
|
```
|
||||||
|
* Результат:
|
||||||
|
```
|
||||||
|
class device {
|
||||||
|
public:
|
||||||
|
int x;
|
||||||
|
void doSomething();
|
||||||
|
void doSomethingElse();
|
||||||
|
};
|
||||||
|
void device::doSomething() {
|
||||||
|
dev2->doSomethingElse();
|
||||||
|
}
|
||||||
|
void device::doSomethingElse() {
|
||||||
|
dev2->x=1;
|
||||||
|
this->x=dev2->x;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
Загрузка…
Создание таблицы
Сослаться в новой задаче