美文网首页
变量Variable介绍:3-const关键字

变量Variable介绍:3-const关键字

作者: 赵亦晨 | 来源:发表于2016-10-17 17:36 被阅读0次

如果不想让某些变量的值改变,可以使用const关键字来修饰这些变量,如果添加const关键字,这些变量的值从头到尾都不会改变了。在iOS开发中,经常把字符串常量添加const关键字,从而替代宏(#define),因为const的执行性能要比宏定义要高。

1、const介绍

给变量添加const关键字,主要目的是为了防止定义的对象被修改。在定义有const关键字的对象时,要设置初始值。

在iOS开发中,有关const最常用的就是用来修饰NSString类型的字符串常量,这种使用方法在苹果提供的系统框架中随处可见。如下:

UIKIT_EXTERNNSString*constUIViewControllerHierarchyInconsistencyExceptionNS_AVAILABLE_IOS(5_0);

UIKIT_EXTERNNSString*constUIViewControllerShowDetailTargetDidChangeNotificationNS_AVAILABLE_IOS(8_0);

对于const的使用,只要掌握一条原则即可,即:const用来修饰离其最近的变量。

如下面的代码所示:

当const修饰的是*x时,即指向字符串@”www.hcios.com”的指针指向是不能改变的,但是字符串的内容是可以改变的;

当const修饰的是y时,即指向的字符串内容@”宏创学院”是不能改变的,但是指向的地址是可以改变的。

voidconstString(){

//const修饰的是指针变量*x

NSStringconst*x=@"www.hcios.com";

x=@"宏创学院";

//const修饰的是字符串

NSString*consty=@"宏创学院";

/*不能修改

y = @"www.hcios.com";

*/

NSLog(@"x = %@",x);

NSLog(@"y = %@",y);

}

2、const使用方法

在实际的iOS开发中,const最常用于定义字符串常量,并且为了维护方便,会把工程中所有的字符串常量都统一放在一个const类中。具体的实现方法如下:

新建一个MyConst类;

在.h文件中,声明所有的常量,需要注意一点:每个常量前面都加上extern关键字,否则在编译时会报声明重复错误。如下所示:

#import

/**高度*/

externintconstheight;

/**启动成功通知*/

externNSString*constlaunchSuccessNotification;

在.m文件中,为每个常量赋值。如下所示:

#import "MyConst.h"

intconstheight=44;

NSString*constlaunchSuccessNotification=@"launchSuccessNotification";

当需要使用const修饰的常量时,引入MyConst类即可。如下所示:

#import

#import "MyConst.h"

intmain(intargc,constchar*argv[]){

@autoreleasepool{

/*const使用*/

NSLog(@"my const height:%d",height);

NSLog(@"my const notification string: %@",launchSuccessNotification);

}

return0;

}

运行结果:

3、const与宏#define的区别

在开发过程中,如果涉及到字符串常量的定义,建议都用const,其处理性能比宏定义要高。当多次使用该常量时,只要在内存中创建一个对象即可。当使用宏#define来定义字符串常量时,在程序编译的过程中,所有使用到宏的地方都会使用设置的字符串来【替换】,因此当程序运行时,会创建多个对象,占用多个内存区域,执行效率低一些。

对于const和宏的使用,只要把握一个要点即可:凡是涉及到常量的定义都建议用const,并且所有使用const修饰的常量都统一放在一个类中,其他的都可以使用宏来定义。

相关文章

  • 变量Variable介绍:3-const关键字

    如果不想让某些变量的值改变,可以使用const关键字来修饰这些变量,如果添加const关键字,这些变量的值从头到尾...

  • JS中的变量对象

    变量对象 关键字 变量对象(variable object), 活动对象(activation object), ...

  • activiti7+springboot2.1.x流程变量(十)

    在这里我们要介绍两种流程变量。 全局变量,globle variable 局部变量,local variable先...

  • Kotlin语法简介

    基础语法 变量 Kotlin使用关键字val(value) 以及var(variable)进行变量声明;一个变量除...

  • python+AI第一课

    python 历史,版本,安装,配置...... 热身小程序 变量,标识符,关键字 变量(variable)在Py...

  • JavaScript--变量

    变量:JavaScript中用var关键字(variable缩写)来声明变量(var是全局变量且可重复定义,但重复...

  • js变量

    1.变量的使用 1.1声明变量 var 是一个js关键字,用来声明变量(variable 变量的意思)。使用该关键...

  • 变量定义

    变量的定义 var关键字 func variable(){var a,b int = 1,1var s stri...

  • [机器学习Lesson 2]代价函数之线性回归算法

    本章内容主要是介绍:单变量线性回归算法(Linear regression with one variable) ...

  • 描述统计学

    术语中英对照 自变量 :independent variable 因变量 :dependent variable ...

网友评论

      本文标题:变量Variable介绍:3-const关键字

      本文链接:https://www.haomeiwen.com/subject/akhzyttx.html