优化Flags

This commit is contained in:
YHH
2020-06-12 08:56:10 +08:00
parent 6fa56dd572
commit da5a1a0c79
7 changed files with 29 additions and 26 deletions

View File

@@ -503,10 +503,10 @@ declare class Time {
declare class Flags {
static isFlagSet(self: number, flag: number): boolean;
static isUnshiftedFlagSet(self: number, flag: number): boolean;
static setFlagExclusive(self: number, flag: number): void;
static setFlag(self: number, flag: number): void;
static unsetFlag(self: number, flag: number): void;
static invertFlags(self: number): void;
static setFlagExclusive(self: number, flag: number): number;
static setFlag(self: number, flag: number): number;
static unsetFlag(self: number, flag: number): number;
static invertFlags(self: number): number;
}
declare class MathHelper {
static toDegrees(radians: number): number;

View File

@@ -2347,17 +2347,17 @@ var Flags = (function () {
return (self & flag) != 0;
};
Flags.setFlagExclusive = function (self, flag) {
self = 1 << flag;
return 1 << flag;
};
Flags.setFlag = function (self, flag) {
self = (self | 1 << flag);
return (self | 1 << flag);
};
Flags.unsetFlag = function (self, flag) {
flag = 1 << flag;
self = (self & (~flag));
return (self & (~flag));
};
Flags.invertFlags = function (self) {
self = ~self;
return ~self;
};
return Flags;
}());

File diff suppressed because one or more lines are too long

View File

@@ -1,9 +1,12 @@
/**
* 帮助处理位掩码的实用程序类
* 除了isFlagSet之外所有方法都期望flag参数是一个非移位的标志
* 允许您使用普通的(0、1、2、3等)来设置/取消您的标记
*/
class Flags {
/**
* 检查位标志是否已在整型中设置
* 检查位标志是否已在数值中设置
* 检查期望标志是否已经移位
* @param self
* @param flag
*/
@@ -12,7 +15,7 @@ class Flags {
}
/**
* 检查位标志是否在整型中设置
* 检查位标志是否在数值中设置
* @param self
* @param flag
*/
@@ -22,12 +25,12 @@ class Flags {
}
/**
* 设置标志位,移除所有已经设置的标志
* 设置数值标志位,移除所有已经设置的标志
* @param self
* @param flag
*/
public static setFlagExclusive(self: number, flag: number){
self = 1 << flag;
return 1 << flag;
}
/**
@@ -36,7 +39,7 @@ class Flags {
* @param flag
*/
public static setFlag(self: number, flag: number){
self = (self | 1 << flag);
return (self | 1 << flag);
}
/**
@@ -46,14 +49,14 @@ class Flags {
*/
public static unsetFlag(self: number, flag: number){
flag = 1 << flag;
self = (self & (~flag));
return (self & (~flag));
}
/**
* 反转集合位
* 反转数值集合位
* @param self
*/
public static invertFlags(self: number){
self = ~self;
return ~self;
}
}