【语法对比】构造函数

178 阅读1分钟

1.构造函数

OC

OC中属性自动生成set,get方法。

PersionModel *model = [[PersionModel alloc] init];
model.realName = realName;
#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@interface PersionModel : NSObject

@property (nonatomic, copy) NSString *realName;
@property (nonatomic, copy) NSString *avatar;
@property (nonatomic, copy) NSString *mobile;

@end
NS_ASSUME_NONNULL_END

Swift

PersionModel(realName: "liujiada", avatar: "xxxx" ,mobile:"xxxxx")

extension Persion {
    struct PersionModel {
        let realName: String
        let avatar: String
        let mobile: String
        init(realName: String, avatar: String, mobile: String) {
            self.realName = realName
            self.avatar = avatar
            self.mobile = mobile
        }
    }
}

Flutter

PersionModel model = PersionModel();
model.realName = realName;
class PersionModel {
  String realName;
  String avatar;
  String mobile;
  
  PersionModel({
    this.realName,
    this.avatar,
    this.mobile,
  });
}

彩蛋

struct s1 {
    char a;
    int b;
    char c;
};

struct s2 {
    int b;
    char a;
    char c;
};

printf("s1 size:%d\n", sizeof(struct s1));
printf("s2 size:%d\n", sizeof(struct s2));

s1 size:12
s2 size:8 

备注:所以定义结构体的时候,先后顺序,将影响结构体的大小。