Java构造函数与Go构造函数的不同

因为Java的构造函数是不需要返回值的,所以一般是参数较多的构造函数调用参数较少的构造函数,然后继续赋值。

比如:

public Student(String name){
    this.name = name ;    
    this.age = 10 ;
}

public Student(String name , int age ){
    this(name) ;
    this.age = age ;
}

而Go语言需要返回值,所以经常是参数较少的调用参数较多的构造函数,在调用时传入一个默认值。

所以代码可能是这样:

func NewStudentWithAge(name string , age int) *Student{
    return &Student{name :name,age :age } ;    
}

func NewStudent(name string ) *Student{
    return  NewStudentWithAge(name , 10);    
}

Object-C也是这样的。如果用C++时,自己也写一些类似newStudent这样的静态函数来调用构造函数,也是和Go一样的。

本文来自:开源中国博客

感谢作者:itfanr

查看原文:Java构造函数与Go构造函数的不同

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。