草庐IT

private_struct

全部标签

swift - 在 Struct 中使用 "let"- Swift

我目前正在练习SwiftLanguageiBook中的示例。我对“let”的理解是我们用“let”做一个常数。一旦我们给它赋值,我们就不能再给它赋另一个值。喜欢下面的代码:letcity="NY"city="LA"但是我在iBook上看到这个例子让我很困惑:structColor{letred=0.0,green=0.0,blue=0.0//在这个例子中,它已经为使用“let”的红色、绿色和蓝色赋值。为什么我们可以在init中再次给这三个变量赋值? 最佳答案 如果您不在构造函数中自行初始化,let中的初始化会提供默认值。构造函数(i

ios - swift 2 : struct thread-safety

在我的快速实践中,我编写了名为OrderedSet的简单结构。我尝试将OrderedSet作为GCD串行队列的线程安全。但它不起作用。测试结果不稳定。我期望是这样的:20:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]但收到了类似的东西2:[3,19]这里是playground代码:importFoundationimportXCPlaygroundstructOrderedSet{mutatingfuncappend(e:T){dispatch_sync(q){if!self.__elements.contains(e){sel

swift - 如何将计算属性的 'setter' 设置为私有(private)?

我知道如何将存储属性的“setter”设置为私有(private)(例如publicprivate(set)varname:String="John")但是我们如何设置一个存储属性的“setter”计算属性(property)私有(private)?在本例中,变量“age”的“setter”。当我尝试将关键字private放在set(newAge){}前面时,XCode显示错误。那么是否可以将计算属性的“setter”设置为私有(private)?publicclassPerson{publicprivate(set)varname:String="John"varage:Int{ge

swift - 如何在 Swift 中为私有(private)枚举编写一个 equal 方法

我是Swift的新手,正在尝试编写一个符合Equatable的私有(private)枚举。这是我的代码的简化表示:classBaz{/*OthermembersinclassBaz*/privateenumTest:Equatable{caseFoocaseBar}privatefunc==(lhs:Test,rhs:Test)->Bool{//comparison}}在“==”方法这一行,编译器提示“运算符只允许在全局范围内使用”。当我将enumTest和“==”方法更改为public,然后将“==”移出类时,错误就消失了。我的问题是为私有(private)枚举实现“==”方法的正确

java - intellij 已经引入常量是私有(private)的而不是公共(public)的

在IntellijIDEA11.1.2中,当使用重构快捷方式引入常量时,它总是使publicstaticfinal常量,而我通常更喜欢默认为private.在旧版本的Intellij中,我很确定我可以选择将private设置为默认值。有谁知道是否仍然存在为IntroduceConstant重构选项默认为private的选项,而不必事后转到声明并将public编辑为私有(private)?谢谢 最佳答案 我遇到了同样的问题并解决了它(想法12)。要默认引入私有(private)常量,请执行以下操作:禁用in-placemode(文件-

java - 为什么枚举类型的私有(private)字段对包含的类可见?

publicclassParent{publicenumChildType{FIRST_CHILD("Iamthefirst."),SECOND_CHILD("Iamthesecond.");privateStringmyChildStatement;ChildType(StringmyChildStatement){this.myChildStatement=myChildStatement;}publicStringgetMyChildStatement(){returnthis.myChildStatement;}}publicstaticvoidmain(String[]arg

c# - 为什么 C# 没有私有(private)包?

我正在学习C#并且来自Java世界,看到C#没有“私有(private)包”时我有点困惑。我看到的大多数评论都是“你做不到;语言不是这样设计的”。我还看到了一些涉及internal和partial的变通办法,以及表示这些变通办法违背语言设计的评论。为什么C#是这样设计的?另外,我将如何执行以下操作:我有一个Product类和一个ProductInstance类。我想要创建ProductInstance的唯一方法是通过Product类中的工厂方法。在Java中,我会将ProductInstance放在与Product相同的包中,但将其构造函数设为packageprivate,这样只有Pr

java - 在 Java 中访问 super() 类的私有(private)变量 - JChart2D

我在Java中扩展了一个类,它有一个私有(private)变量,我想在它被更改之前获取它的值。在父类(superclass)中没有访问此变量的方法。我试过super().m_zoomArea(变量在jChart2D的ZoomableChart类中)。当调用mouseDragged方法时,变量会更新。我已经重写了这个方法,想在更新之前获取变量的值。 最佳答案 您可以访问任何类的私有(private)变量,但这是一个坏主意,因为您违反了OOP的基本原则之一-封装。但有时程序员被迫打破它。这是解决您问题的代码:扩展类publicclass

java - 用于静态成员初始化的静态 block 与私有(private)静态方法

静态变量可以用私有(private)静态方法或静态block初始化。两者之间有什么微妙的区别吗?是否存在无法使用静态方法初始化静态成员的情况?我发现后者更具可读性。静态block初始化:privatestaticintNUM_ITER;static{//OperationsNUM_ITER=//valfromaboveoperations.}私有(private)静态方法初始化:privatestaticintNUM_ITER=calculateNumIter();//Somemethodcommentonhowwearecalculating.privatestaticintcalc

Java native 方法。公共(public)与私有(private)

假设我们需要在native代码中实现一些java方法并将其公开给用户。我们知道所有的工作都是由native端完成的,即java代码的唯一职责是将用户提供的参数传递给native代码并返回结果。据此,java层可能有两种实现方式:通过使用直接向用户公开的native方法:publicnativeObjectdoSmth(Objectarg0,Objectarg1);通过使用围绕私有(private)本地方法的瘦公共(public)包装器:publicObjectdoSmth(Objectarg0,Objectarg1){returnnativeDoSmth(arg0,arg1);}pri