Program Club

'init (start : end :)'는 더 이상 사용되지 않습니다. Swift 3에서 제거됩니다. '.. <'연산자를 사용합니다.

proclub 2020. 10. 26. 21:31
반응형

'init (start : end :)'는 더 이상 사용되지 않습니다. Swift 3에서 제거됩니다. '.. <'연산자를 사용합니다.


다음 코드를 사용하고 있습니다.

var continousDigitsRange:Range<Int> = Range<Int>(start: 0, end: 0)

Xcode 7.3 (Swift 2.2)으로 업데이트 한 이후로 다음과 같은 힌트를 받았습니다.

'init (start : end :)'는 더 이상 사용되지 않습니다. Swift 3에서 제거됩니다. '.. <'연산자를 사용하십시오.

나를 위해 " '.. <'연산자를 사용하여 올바르게"번역 "하는 방법이 명확하지 않습니다.


당신은 단순히 작성해야

var continousDigitsRange1:Range<Int> = 0..<0

또는 더 간단하게 가고 싶다면

var continousDigitsRange = 0..<0

또한 주목할 가치가 substringWithRange있는 것은 String에 대해 이제 다음을 사용할 수 있습니다.

let theString = "Hello, how are you"
let range = theString.startIndex.advancedBy(start) ..< theString.startIndex.advancedBy(end)
theString.substringWithRange(range)

닫힌 범위 연산자 (a...b)는 a에서 b까지의 범위를 정의하고 값 a와 b를 포함합니다. a의 값은 b보다 클 수 없습니다.

반 개방 범위 연산자 (a..<b)는 a에서 b까지의 범위를 정의하지만 b는 포함하지 않습니다. 첫 번째 값은 포함하지만 최종 값은 포함하지 않기 때문에 반 개방이라고합니다. 폐쇄 범위 연산자와 마찬가지로 a의 값은 b보다 클 수 없습니다. a의 값이 b와 같으면 결과 범위는 비어 있습니다.

스위프트 프로그래밍 언어 (Swift 2.2)-기본 연산자

var continousDigitsRange:Range<Int> = Range<Int>(start: 0, end: 0)
--to--
var continousDigitsRange:Range<Int> = 0..<0

bmichotte의 답변을 전체적으로 보여주기 위해 ...

let theString = "Hello, how are you today my friend"
    let start = 3
    let end = 15
    let range = theString.startIndex.advancedBy(start) ..< theString.startIndex.advancedBy(end)
    let p = theString.substringWithRange(range)
    print("this is the middle bit>\(p)<")

이것은 이것이 중간 비트입니다> lo, 어떻게 <


신속한 3.0을 참조하여 몇 가지 포인트 추가

// 가산 범위 예.

let range1 = 0..<5

계산 가능한 폐쇄 범위 예

let range2 = 0...5

// 범위로부터의 범위

let range = Range(uncheckedBounds: (range1.lowerBound,range1.upperBound))

// substringRange에서 거리를 가져옵니다.

let str = "Hello, how are you"
let substringRange = str.characters.indices

// Swift 3.0 이하

let length = substringRange.distance(from: substringRange.startIndex, to: substringRange.endIndex)

// Swift 3.0 용

let length2 = str.distance(from: substringRange.startIndex, to: substringRange.endIndex)

나는 항상 문자열의 부분 문자열 범위를 얻는 함수를 가지고 있습니다. 다음은 Swift 3의 업데이트 된 기능입니다.

func getSubStringRange(fullString: String, fromIndex: Int, subStringSize: Int) -> Range<String.Index> {
    let startIndex = fullString.characters.index(fullString.startIndex, offsetBy: fromIndex)
    let endIndex = fullString.characters.index(startIndex, offsetBy: subStringSize)

    let subStringRange = startIndex..<endIndex

    return subStringRange
}

The function is pretty self explanatory - You pass in a string(fullString), the index of that string where the substring starts(fromIndex) and how big the subString is(subStringSize).

Example:

let greeting = "Hi, my name is Nathaniel"
let getName = greeting[getSubStringRange(fullString: greeting, fromIndex: 15, subStringSize: 9)]

print("Name: \(getName)")

-> Prints: "Name: Nathaniel"

참고URL : https://stackoverflow.com/questions/36157777/initstartend-is-deprecated-it-will-be-removed-in-swift-3-use-the-o

반응형