首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >用于表示数字事物的子类SmallInteger?

用于表示数字事物的子类SmallInteger?
EN

Stack Overflow用户
提问于 2019-04-26 14:43:33
回答 4查看 131关注 0票数 3

我想代表一个电视国家代码(如瑞典46或阿根廷54 )。这是一个小的正整数。

1)子类SmallInteger是建模的好主意吗?

在代码浏览器中尝试此操作时,我得到:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SmallInteger immediateSubclass: #CountryCode

2)我不知道immediateSubclass:是什么意思,而不是subclass:

3)如何创建CountryCode的实例?因为SmallIntegers只能通过算术创建?

我知道我可以使用封装,只需在我自己的CountryCode类中拥有一个CountryCode

谢谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-04-27 00:00:59

  1. 在可能的情况下,构图通常比子类更可取。特别是像SmallInteger这样的核心类的子类不是一个好主意(而且可能根本不起作用),因为有2
  2. 定义为immediateSubclass:的类是VM处理的特例子类。该值不是对象指针,而是直接存储在对象标头中。我认为VM需要了解每种特定类型的immediateSubclass:来处理编码/解码/JIT代码生成。
  3. 您已经开始看到创建数字子类的问题了。(还有其他的)您可以创建一个对象子类,并让它代理一个数值ivar,但如果您的对象使用#isKindOf:等进行测试,它本身可能还不足以完全令人信服地作为一个数字。如果您真的想要这样做,您可能希望使您的类成为一个Integer的子类,其中包含您的数值ivar,然后再做所有您将对其进行代理的正常操作。(也就是说,要么创建性能和调试所需的所有方法,要么实现#doesNotUnderstand:,将消息转发给它并与缺点共存)

这就是说,问问自己,为什么你真的需要这样做作为一个国家的代码?是的,这是一个数字,但是你真的要用它做数字的事情吗?(把两个国家代码加在一起,国家代码* 10,一个国家代码的平方根意味着什么,等等)。您需要专门化,还是代码只是一个没有特殊行为的数值?我怀疑更好的解决方案是创建一个Country或CountryCode类作为Object或其他顶级模型类的子类。然后,您可以为国家代码(很可能是SmallInteger)添加一个ivar,为国家名称添加另一个ivar,并在需要时向其中添加一个#asInteger#asNumber方法。

票数 3
EN

Stack Overflow用户

发布于 2019-04-26 23:57:19

1)从整数继承有什么好处?对国家代码执行算术?一个国家的代码完全需要一个类吗?为了什么行为?

2)直接子类是一个实现细节。普通对象是指针(面向对象的指针)。直接对象包含数据而不是指针。虚拟机通过低位非零来识别它们。普通地址对齐为4、8或16字节,并将低位设置为零。

3)不能创建即时对象,不能分配内存(新的),也不能对它们进行子类。只有VM可以,是的,这总是通过算术为SmallInteger。

所以是的,作文可能是你所需要的。Country有一个小整数的telefon代码(在实例变量中),还可能有其他特性(名称.)。

票数 2
EN

Stack Overflow用户

发布于 2019-04-27 03:11:17

例如,将国家代码封装在类TelephoneNumber中就足够了,不是吗?

我想您可能需要国家和代码之间的映射,还需要一些工具来解析和验证电话号码字符串。我不认为有必要在自己的类中对代码进行建模。

因此,我会尝试封装,并坚持到被证明是错误的(这应该是显而易见的)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55875720

复制
相关文章
基于 FPGA 的数字表示
在FPGA系统中有两个基本准则非常重要,分别为:数字表示法和代数运算的实现。本博文主要介绍数字表示。   参考文献:数字信号处理的FPGA实现(第3版)中文版 && 基于FPGA的数字信号处理 [高亚军 编著] 2015年版   可以购买相关书籍进行研读。
碎碎思
2020/07/01
1.2K0
redis的事物
对于一般的关系型数据库的事物来说,事物的执行过程无非为 生成事物 产生命令 执行事物。对于redis来说,multi就是生成事物,exec就是执行事物,discard就是取消事物
程序员小饭
2020/09/07
8520
学习用于视觉跟踪的深度紧凑图像表示
在本文中,我们研究了跟踪可能非常复杂背景的视频中运动物体轨迹的挑战性问题。与大多数仅在线学习跟踪对象外观的现有跟踪器相比,我们采用不同的方法,受深度学习架构的最新进展的启发,更加强调(无监督)特征学习问题。具体来说,通过使用辅助自然图像,我们离线训练堆叠去噪自动编码器,以学习对变化更加鲁棒的通用图像特征。然后是从离线培训到在线跟踪过程的知识转移。在线跟踪涉及分类神经网络,该分类神经网络由训练的自动编码器的编码器部分构成,作为特征提取器和附加分类层。可以进一步调整特征提取器和分类器以适应移动物体的外观变化。与一些具有挑战性的基准视频序列的最先进的跟踪器进行比较表明,当我们的跟踪器的MATLAB实现与适度的图形处理一起使用时,我们的深度学习跟踪器更准确,同时保持低计算成本和实时性能单位(GPU)。
代码的路
2022/08/23
1.4K0
学习用于视觉跟踪的深度紧凑图像表示
spring的事物 原
    Spring事务让我们从复杂的事务处理中得到解脱。使得我们再也无需要去处理获得连接、关闭连接、事务提交和回滚等这些操作。再也无需要我们在与事务相关的方法中处理大量的try…catch…finally代码。我们在使用Spring声明式事务时,有一个非常重要的概念就是事务属性。事务属性通常由事务的传播行为,事务的隔离级别,事务的超时值和事务只读标志组成。我们在进行事务划分时,需要进行事务定义,也就是配置事务的属性。
尚浩宇
2018/08/17
7430
数字在计算机中的表示
位(bit):计算机中最小的数字单位,是“二进制数字”(binary digit)的缩写,它只能取 0 或 1 两个值,因此bit被称作“二进制位”。
浪漫主义狗
2023/09/04
8330
数字在计算机中的表示
MySQL 事物
事务是数据库处理操作,其中执行就好像它是一个单一的一组有序的工作单元。换言之,事务将永远不会是完全的,除非在组内每个单独的操作是成功的。如果事务中的任何操作失败,整个事务将失败。 实际上,许多SQL查询组成到一个组,将执行所有这些一起作为事务的一部分。 1.概念 一条或者多条sql语句的集合!  事务:就是一堆操作的集合,他们同生共死。要么都执行成功,要么都执行失败 2.事务的特性  ACID   A:原子性  完整的,不可分割的   原子性 (Atomicity):在事务中的操作,要么都执行,要么都不执行
房上的猫
2018/03/14
1.5K0
FPGA零基础学习:数字电路中的数字表示
大侠好,欢迎来到FPGA技术江湖。本次带来FPGA系统性学习系列,本系列将带来FPGA的系统性学习,从最基本的数字电路基础开始,最详细操作步骤,最直白的言语描述,手把手的“傻瓜式”讲解,让电子、信息、通信类专业学生、初入职场小白及打算进阶提升的职业开发者都可以有系统性学习的机会。
FPGA技术江湖
2020/12/30
7680
FPGA零基础学习:数字电路中的数字表示
大侠好,欢迎来到FPGA技术江湖。本次带来FPGA系统性学习系列,本系列将带来FPGA的系统性学习,从最基本的数字电路基础开始,最详细操作步骤,最直白的言语描述,手把手的“傻瓜式”讲解,让电子、信息、通信类专业学生、初入职场小白及打算进阶提升的职业开发者都可以有系统性学习的机会。
FPGA技术江湖
2021/03/12
6810
FPGA零基础学习:数字电路中的数字表示
把数字用拼音表示并输出
版权声明:本文为博主原创文章,转载请注明博客地址: https://blog.csdn.net/zy010101/article/details/80079905
zy010101
2019/05/25
4520
Mysql事物
现在很多软件都是多用户,多程序,多线程的,对同一张表可能同时有很多人在用,为保持数据的一致性,所以提出了事物的概念
彼岸舞
2020/09/30
1.3K0
MySQL事物
事务是一个不可分割的整体,事务必须具有原子特性,及当数据修改时,要么全执行,要么全不执行,即不允许事务部分的完成
用户9645905
2023/04/06
1.3K0
MySQL事物
spring事物
spring的4种事务特性,5种隔离级别,7种传播行为 spring的事务 事务是逻辑上的一组操作,组成这组操作的各个逻辑单元,要么一起成功,要么一起失败. 事务特性(4种) 原子性 (atomicity):强调事务的不可分割. 一致性 (consistency):事务的执行的前后数据的完整性保持一致. 隔离性 (isolation):一个事务执行的过程中,不应该受到其他事务的干扰 持久性(durability) :事务一旦结束,数据就持久到数据库 如果不考虑隔离性引发安全性问题: 脏读 :一个事务读到
earthchen
2020/09/24
1.1K0
spring事物
数字在计算机中的“硬币表示”
上篇博文 引出了“硬币模型”,从“抛硬币”的角度描述了计算机数据的最本质属性。同时也介绍了为若干硬币赋予现实意义、实现更多数据展示的基本思路。
zgq354
2020/04/01
1.7K0
数字在计算机中的“硬币表示”
WWW2021 | 基于图视角的用于推荐系统的公平表示
链接 | mp.weixin.qq.com/s/auKfgSqgGEHfQsUNZ3g2Gg
张小磊
2021/04/01
4410
聊聊计算机的数字表示方法(下)
上篇已经讲了原码、反码和补码的出现解决了计算机对整数的存储和计算问题,而小数的存储和计算又是另外一套机制,对于人类而言,整数和小数的计算一样简单,然而对于计算机来说小数运算比整数运算要复杂的多。本文从浮点数原理出发,聊聊浮点数的精度问题,对网上的一些结论进行回答。
一个无聊的人
2022/08/26
1.4K0
聊聊计算机的数字表示方法(下)
spring的事物配置 原
    xml配置这里不细说了,这里主要讲的是注解方式。     需要注意的是:        @Transactional只能被应用到public方法上, 对于其它非public的方法,如果标记了@Transactional也不会报错,但方法没有事务功能.     Spring使用声明式事务处理,默认情况下,如果被注解的数据库操作方法中发生了unchecked异常,所有的数据库操作将rollback;如果发生的异常是checked异常,默认情况下数据库操作还是会提交的。这种默认的行为是可以改变的。 使用@Transactional注解的noRollbackFor和rollbackFor属性。 如:@Transactional(rollbackFor=Exception.class)可以使checked异常发生时,数据库操作也rollback、@Transactional(noRollbackFor=RuntimeException.class)可以使unchecked异常发生时也提交数据库操作。也可以使用noRollbackForClassName、rollbackForClassName属性来指定一个异常类名的String数组来改变默认的行为。 另外此注解要是只在接口上写, 接口的实现类就会继承下来、接口的实现类的具体方法,可以覆盖类声明处的设置  。     @Transactional  的所有可选属性如下:  
尚浩宇
2018/08/17
4770
聊聊计算机的数字表示方法(上)
我:我们知道浮点数是用尾数、指数、和底数表示,计算机内是使用2进制,底数是2,而指数用移码表示……
一个无聊的人
2022/08/26
6390
聊聊计算机的数字表示方法(上)
python用于表示逻辑非运算_python and运算符
布尔”与” – 如果 x 为 False,x and y 返回 x 的值,否则返回 y 的计算值。
全栈程序员站长
2022/11/07
1.3K0
旧事物也可以是新事物
在过去的七个月或更长时间里,许多人的工作速度低于全速工作,但有些人却比其他人做得更多。即将发布影响CRM的大量新技术,但是即使没有到10月为止的最新公告,人们也意识到我们将全面发展。几十年前我们思考和争论的事情以不同的形式以新的解决方案返回。
田冠宇
2020/12/25
8590
Mysql事物隔离
最近工作内容需要向一张表里面写入数据,有两个实现方法,每种方法会运行得到一份结果,两个结果的key会有大部分重复,后面跟的value会有不同。 表格中只允许两个结果中其中的一个key存在,二者选其一,只能更新替代。在往表里写的程序是没有错误的,但最终从表里查询的时候,发现很多key有两份数据结果,思考其原因,可能跟事物隔离有关系,这里讲解下事物及事物隔离。
用户3578099
2019/08/15
1.6K0

相似问题

Protegè“事物有子类-->”

11

通过继承自事物的属性查询事物的子类

24

用于表示数字段的数据结构

12

特定IDE,用于特定事物

61

扩展默认类(SmallInteger)

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文