Main Content

mustBeA

验证值来自指定的类之一

    说明

    示例

    mustBeA(value,classNames)valueclassNames 中的类名称列表进行比较,如果 value 的类不是某个命名类或某个命名类的子类,则会引发错误。此函数不返回值。

    支持的类:所有 MATLAB®

    示例

    全部折叠

    验证值是标量,或者是字符串或 uint8 类型的数组。

    a = 'red';
    mustBeA(a,["string","uint8"])
    Value must be of the following types: 'string' or 'uint8'.

    传递字符向量无效,因为 mustBeA 将文本值限制为仅字符串。

    b = [1 0 0];
    mustBeA(b,["string","uint8"])
    Value must be of the following types: 'string' or 'uint8'.

    传递双精度整数数组无效,因为 mustBeA 将数值限制为仅 uint8

    子类与超类满足 "isa" 关系。因此,作为指定类之一的子类的值有效。

    定义 uint8 的一个子类。

    classdef ColorSpec < uint8
        methods
            function obj = ColorSpec(c)
                if nargin == 0
                    c = uint8(0);
                end
                obj = obj@uint8(c);
            end
        end
    end
    

    创建 ColorSpec 类的一个对象。

    a = ColorSpec([1 0 0])
    a = 
    
      1×3 ColorSpec:
    
      uint8 data:
       1   0   0

    ColorSpec 对象包含 uint8 数据。

    mustBeA 测试 ColorSpec 对象的有效性。以下语句不会生成错误。

    mustBeA(a,["string","uint8"])

    输入参数

    全部折叠

    要验证的值,指定为标量或任何 MATLAB 或用户定义的类型的数组。

    一个或多个类的名称,指定为字符串或字符向量。

    示例: ["double", "single"]

    提示

    • mustBeA 用于属性和函数参数验证。

    版本历史记录

    在 R2020b 中推出