我真的很困惑我们在Swift中创建数组的方式。你能告诉我有多少种方法可以创建一个带有一些细节的空数组?
答案 0 :(得分:244)
你走了:
var yourArray = [String]()
以上也适用于其他类型,而不仅仅是字符串。这只是一个例子。
向其中添加值
我认为你最终想要为它添加一个值!
yourArray.append("String Value")
或者
let someString = "You can also pass a string variable, like this!"
yourArray.append(someString)
通过插入添加
一旦有了几个值,就可以插入新值而不是附加值。例如,如果要在数组的开头插入新对象(而不是将它们附加到结尾):
yourArray.insert("Hey, I'm first!", atIndex: 0)
或者您可以使用变量使插入更灵活:
let lineCutter = "I'm going to be first soon."
let positionToInsertAt = 0
yourArray.insert(lineCutter, atIndex: positionToInsertAt)
你最终可能想要删除一些东西
var yourOtherArray = ["MonkeysRule", "RemoveMe", "SwiftRules"]
yourOtherArray.removeAtIndex(1)
当您知道数组在数组中的位置时(即,当您知道其索引值时),上述工作非常有用。当索引值从0开始时,第二个条目将在索引1处。
在不知道指数的情况下删除值
但是,如果你不这样做呢?如果yourOtherArray有数百个值并且您只知道要删除等于" RemoveMe"?
if let indexValue = yourOtherArray.indexOf("RemoveMe") {
yourOtherArray.removeAtIndex(indexValue)
}
这应该可以帮到你!
答案 1 :(得分:24)
WHERE
可以存储任何对象
var myArr1 = [AnyObject]()
只能存储字符串
答案 2 :(得分:20)
您可以使用
var firstNames: [String] = []
答案 3 :(得分:20)
Swift 3
有三种方法可以在Swift中创建一个空数组,速记语法方式总是首选。
方法1:速记语法
var arr = [Int]()
方法2:阵列初始化程序
var arr = Array<Int>()
方法3:具有Array Literal的数组
var arr:[Int] = []
方法4:积分转到@BallpointBen
var arr:Array<Int> = []
答案 4 :(得分:15)
在swift中创建/初始化数组有两种主要方法。
var myArray = [Double]()
这将创建一个双打阵列。
var myDoubles = [Double](count: 5, repeatedValue: 2.0)
这将创建一个包含5个双精度数组的数组,所有数组都以2.0的值初始化。
答案 5 :(得分:6)
如果要声明一个空的字符串类型数组,可以用5种不同的方法来做到这一点:-
var myArray: Array<String> = Array()
var myArray = [String]()
var myArray: [String] = []
var myArray = Array<String>()
var myArray:Array<String> = []
任何类型的数组:-
var myArray: Array<AnyObject> = Array()
var myArray = [AnyObject]()
var myArray: [AnyObject] = []
var myArray = Array<AnyObject>()
var myArray:Array<AnyObject> = []
整数类型的数组:-
var myArray: Array<Int> = Array()
var myArray = [Int]()
var myArray: [Int] = []
var myArray = Array<Int>()
var myArray:Array<Int> = []
答案 6 :(得分:4)
以下是Swift 4中的一些常见任务,您可以将它们用作参考,直到您习惯了。
let emptyArray = [String]()
let emptyDouble: [Double] = []
let preLoadArray = Array(repeating: 0, count: 10) // initializes array with 10 default values of the number 0
let arrayMix = [1, "two", 3] as [Any]
var arrayNum = [1, 2, 3]
var array = ["1", "two", "3"]
array[1] = "2"
array.append("4")
array += ["5", "6"]
array.insert("0", at: 0)
array[0] = "Zero"
array.insert(contentsOf: ["-3", "-2", "-1"], at: 0)
array.remove(at: 0)
array.removeLast()
array = ["Replaces all indexes with this"]
array.removeAll()
for item in arrayMix {
print(item)
}
for (index, element) in array.enumerated() {
print(index)
print(element)
}
for (index, _) in arrayNum.enumerated().reversed() {
arrayNum.remove(at: index)
}
let words = "these words will be objects in an array".components(separatedBy: " ")
print(words[1])
var names = ["Jemima", "Peter", "David", "Kelly", "Isabella", "Adam"]
names.sort() // sorts names in alphabetical order
let nums = [1, 1234, 12, 123, 0, 999]
print(nums.sorted()) // sorts numbers from lowest to highest
答案 7 :(得分:3)
swift中的数组写为**数组&lt;元素&gt; **,其中Element是允许存储数组的值的类型。
数组可以初始化为:
<强> let emptyArray = [String]()
强>
它显示了一个类型为string
的数组emptyArray变量的类型从初始化程序的类型推断为[String]。
用于创建带元素的字符串数组
<强> var groceryList: [String] = ["Eggs", "Milk"]
强>
groceryList已初始化为两个项目
groceryList变量声明为“字符串值数组”,写为[String]。 此特定数组指定了String类型的值,只允许存储String值。
数组的各种特性如下:
- 检查数组是否包含元素(如果数组是否为空)
isEmpty属性(布尔值),用于检查count属性是否等于0:
if groceryList.isEmpty {
print("The groceryList list is empty.")
} else {
print("The groceryList is not empty.")
}
- 在数组中追加(添加)元素
您可以通过调用数组的追加(_ :)方法将新项添加到数组的末尾:
groceryList.append("Flour")
groceryList现在包含3个项目。
或者,使用加法赋值运算符(+ =)追加一个或多个兼容项的数组:
groceryList += ["Baking Powder"]
groceryList现在包含4个项目
groceryList += ["Chocolate Spread", "Cheese", "Peanut Butter"]
groceryList现在包含7个项目
答案 8 :(得分:2)
您可以通过传递数组索引来删除数组内容,也可以删除所有
function acme_login_redirect( $redirect_to, $request, $user ) {
return ( is_array( $user->roles ) && in_array( 'administrator', $user->roles ) ) ? admin_url() : site_url();
}
add_filter( 'login_redirect', 'acme_login_redirect', 10, 3 );
答案 9 :(得分:1)
快速5
// Create an empty array
var emptyArray = [String]()
// Add values to array by appending (Adds values as the last element)
emptyArray.append("Apple")
emptyArray.append("Oppo")
// Add values to array by inserting (Adds to a specified position of the list)
emptyArray.insert("Samsung", at: 0)
// Remove elements from an array by index number
emptyArray.remove(at: 2)
// Remove elements by specifying the element
if let removeElement = emptyArray.firstIndex(of: "Samsung") {
emptyArray.remove(at: removeElement)
}
给出了类似的答案,但不适用于最新版本的Swift(Swift 5),因此这里是更新的答案。希望能帮助到你! :)
答案 10 :(得分:1)
根据Swift 5
// An array of 'Int' elements
let oddNumbers = [1, 3, 5, 7, 9, 11, 13, 15]
// An array of 'String' elements
let streets = ["Albemarle", "Brandywine", "Chesapeake"]
// Shortened forms are preferred
var emptyDoubles: [Double] = []
// The full type name is also allowed
var emptyFloats: Array<Float> = Array()
答案 11 :(得分:0)
兼容于:Xcode 6.0.1 +
您可以通过在声明中指定数组的Element类型来创建一个空数组。
例如:
// Shortened forms are preferred
var emptyDoubles: [Double] = []
// The full type name is also allowed
var emptyFloats: Array<Float> = Array()
Example from the apple developer page (Array):
希望这可以帮助任何绊到此页面的人。
答案 12 :(得分:-1)
HotelSim2Image <- eventReactive(input$findhotels, {
url <- paste0('https://www.abcdef.com%2FHotel%2FSearch%3FhotelId%3D1870464', HotelSimilarity[HotelSimilarity$HotelName == input$hname, ]$Sim2)
html <- paste(readLines(url), collapse="\n")
matched <- str_match_all(html, "https.*xxx.com.*jpg")
src = matched[[1]][4]
tags$img(src=src, height = 150, width = 175)
})
。我经常使用它来映射我需要指定数量的模拟对象的语句。例如,
Array(repeating: 0, count: 10)