>> [음악 재생]
>> DAN AMRMENDARIZ : 모두, CS50 세미나에 오신 것을 환영합니다,
스위프트와 아이폰 OS 앱 개발.
나는 댄 Armendariz 해요, 내가 훈계 해요 여기 하버드에서 컴퓨터 과학의.
>> 그리고 다음 시간이 될 것입니다 많은 물건의 회오리 바람 투어
이 주제에 대해 우리가 들어갈 수있다.
I는 모든 소스 코드를 작성한다 온라인 오늘 볼 수있다.
우리는하지 못할 수 있습니다 실제로 모든 가서
나는 난 것을 요하는 것이 이 시간에 당신을 게재합니다.
그러나 적어도 희망을 통해 소스 코드 코멘트
당신은 파악하려고 할 수 있습니다 무엇을 정확하게 그 일에 대해 무슨 일이 일어나고
우리는 아주에 도착하지 않습니다.
>> 의 전반적 구조 다음과 같이 오늘의 이야기가 될 것입니다.
우리는 몇 가지 기본적인 일을 밖으로 시작합니다 스위프트의 언어와 문법,
고급의 일부에가는 스위프트 언어의 구문.
언어 때문에 정말 현대적이고 그 것이다
높은 수준을 많이 가지고 기능, 우리가하지 않은 일
, CS50에 걸쳐 C에서 볼 또는 심지어 일부 다른 언어
우리는 시작했는지 같은 PHP CS50에 사용,
그래서 나는 시도해야 할 것입니다 또한 몇 가지 주제를 소개하는
더 높은 레벨의 언어와 관련된 당신이 CS50에 깊이 볼 수 있음,
하지만 당신은 나중에 볼 수 있습니다 컴퓨터 과학 수업.
그래서이 될 것 단단히 시간을 포장.
그리고 나를 보자 주시기 바랍니다 당신은 질문이있는 경우에는 알고있다.
당신이 관심이 있다면 개발을하고있는
스위프트와, 또는 정말 모든 iOS 앱 개발,
요구 사항의 몇 가지 있습니다.
첫째, 당신이 사용되어야한다 맥, 예에서 실행
오늘날 우리가 사용하고있는 것으로려고하고있다, OS의 비교적 새로운 버전
이 경우 X를, 나는 X 10.5을 실행하고 있습니다.
당신이 원하는 경우 10.11을 실행 할 수 있습니다.
그러나 모든 것을 당신이 거라고 나중에 엑스 코드 7을 포함한다 참조
이는 최신 버전이 스위프트 2.0 스위프트,의.
이것은 실제로 꽤입니다 중요한 차이점.
구문의 많은있다 꽤 크게 변경
스위프트 1.0 어떤 경우에는, 작년에 출시 된,
스위프트 2.0에있는 바로 이번 가을에 나왔다.
그래서 우리는 스위프트 2.0을 보여줄 것입니다.
많은 것들이 그 온라인 검색
당신은 추가려고 할 때 다양한 물건에 대한 정보,
명시 적으로 수행 할 수 있습니다 스위프트 2를 검색
오히려 그냥 평범한 오래된 스위프트보다 만들기 위해 당신이 구문이 올 수 있는지 확인하십시오.
>> 사실, 이는 일반적으로 사실이다.
개발의 빠른 양이있다 스위프트 언어에서 일어나는
애플은 출시 이후로, 나는 생각한다 무엇, 그것은 년 이상 조금이었다
지금.
그리고 일이 변경되었습니다 극적으로 그 시간에.
그래서 좌절하지 말라 경우에, 당신은 주위를 찾고있을 때
어떻게 달성하는 스위프트거나 주제에 대해 몇 가지 예제 코드를 사용하여 뭔가
또는 뭔가 그렇지 않습니다 그 실제로 스위프트 2.0에서 작동합니다.
당신이 찾고 확인 특히 해당 버전
다른 효과를 최소화하려고 버전과 사물의 그 종류.
>> 난 그냥 몇 가지를 지적하려고합니다 이전 버전에 차이가있다.
하지만 조심하는 뭔가.
그건 아마 될 것 가장 큰 두통 중 하나
당신은 스위프트와 함께해야합니다 발견된다 , 다만 오래된 예제 코드
몇 개월, 사용하려고 그것은 당신의 더 현대적인 프로젝트.
그리고 그것은 단지 작동하지 않습니다.
당신은 컴파일러 오류를 받고있어, 구문 오류, 미친 것들의 모든 종류.
그러니 그냥 환자 수 즉, 당신은 희망 것
꽤 좋은 경험을 가지고 스위프트 전체와.
>> 지금 당신은 join-- 실제로 할 수 있고 나는 희망 우리는 실제로 여전히이 연도 -이
CS (50)의 애플 앱 개발 팀, 어느
당신이 어떤 응용 프로그램을 설치할 수 이는 당신이 당신의 iOS 기기에서 만들 수 있습니다.
그래서이 URL의 경우를 살펴 당신은 그 일에 관심이 있습니다.
>> 그렇게 단지 몇 스위프트 자체에 대한 것.
그것은 컴파일 된 언어입니다.
하지만 당신은 그 일부를 볼 수 있습니다 우리가 사용하는 기능
그것은 비트에서 사용할 수 있도록 이 방법으로도 해석처럼.
>> 구문의 많은 빌려 C.에서 그것은 기반으로하고 C로 작성
그래서 우리는 그것을 볼 수 있습니다 테이크 아웃 많이있다
기존의 지식에서 C에서 우리는 스위프트에 포트 할 수 있습니다.
>> 하지만 일이있다 그 C.에서 매우 다른 확인
그것은 매우 강력한 형식입니다.
자동 메모리 관리가있다.
당신은해야 할 것 아니에요 malloc에​​ 또는 무료로 어디를 사용합니다.
그것은 보편성을 위해 설계되었습니다.
그래서 다른 말로하면, 당신은 그것을 사용할 수 있습니다 애플 시계에서 컨텍스트의 모든 종류,
아이폰에있는 모든 방법 OS X 및 최대 심지어 일부 서버, 심지어 일부 스크립트.
그러나 우리는 그것을 볼 수 있습니다 스크립트에 대한 지원
확실히이 아직 그대로 그것은 다른 언어이다.
그래서 가장 가능성이 당신이 사용하고있을 것이다 이 독점적으로 개발
Mac 또는 아이폰에.
>> 그리고 그것은 현대적인 기능이 많이 있습니다.
그리고이 많은 것들을 물건 것을 우리는 오늘 해결하기 위해 시도 할거야
뿐만 아니라 우리의 주제 솔직히 그, 우리는 전체 과정을 바칠 수 있습니다.
사실이며, CS (51), 제공되는 다음 학기,
이 주제에 많은 초점을 맞추고 그 아래에 설명되어 있습니다.
그래서 당신은 전체 학기를 보낼 수 있습니다 이러한 것들을 이해.
그러나 우리는 시도 할거야 그들을 통해 얻을 수
적어도 충분히 그 무엇을 이해할 수있다
당신이 보는 경우에가는 스위프트 프로그램에서
그리고 당신의 방법을 해킹 할 수 최종 프로젝트는을 통해.
>> 가장 좋은 방법 중 하나 이제 당신이 할 수 이에 대한 자세한 정보를 얻을 수
다만 애플의를 통해 솔직히입니다 스위프트에 대한 설명서를 제공했다.
API가 많이있다 사용할 수 있는지.
그리고 이것은 당신을위한 좋은 가정 기지 특정 물건을 찾기 위해 당신
아이폰 OS와 관련된 API를 수행 할.
당신이 카메라를 사용하려면 예를 들어, 당신은 여기에서 찾고 시작할 수 있습니다
또한 구글과 스택을 사용 평소 오버 플로우.
>> 이에 대한 모든 질문 우리는 바로 뛰어 전에?
괜찮아.
이제 이동하자.
>> 그래서 먼저 내가 가진 예를 들어, 파일 수.
그리고 단계하려고거야 상대적으로 빠르게 그들을 통해.
이 스위프트에 대한 안녕하세요 파일입니다.
그것은 매우 간단합니다.
방법이 더 의견이있다 실제 코드가보다.
실제 코드에있다 주목 라인 (14)의 맨 아래.
그것은 인쇄를 말한다.
그리고, 그것은 함수 호출이다.
우리는에 전달하고 문자열은 안녕하세요 CS50을했다.
더 세미콜론이 없다는 것을 알 수 있습니다.
더 INT 메인이 없다는 것을 알 수 있습니다.
아무도 없습니다 우리가 다 함께했던 cruft에
우리가 이러한 방식을 사용하여 신속한 때 단지 텍스트 파일에 기록되는
다음, 내 컴퓨터에 저장 나는 그것을 컴파일하고 실행할 수 있습니다.
>> 난 여기에 알 수 있습니다 CS50의 IDE를 사용하지.
이것은 내가 있다고 가정 실행하고 나는 OS X에있어 것을,
내가 엑스 코드는 이미 설치되어 있는지 이 위해서는이 시스템
실제로 함수.
그러나 이것은 단지 일반 텍스트 파일 것을 우리는 컴파일하고 편집 할 수 있습니다.
그래서이 실제로 어떻게 작동하는지 살펴 보자.
내가 그것을 컴파일하려면?
swiftc 1.swift.
순간 두 한 결과, 우리가 지금 가지고있는 것을 볼 수 있습니다
1이라는 파일에이 컴파일.
그리고 지금 우리는 우리의 CS50을 인쇄 한, 오히려 우리의 Hello World 응용 프로그램입니다.
>> 하나 다른 일을 주목하라 물론, 그 기본입니다
우리는 입력하지 않았다 / n은 새로운 라인을 인쇄합니다.
기본적으로 인쇄 기능에 의해 스위프트는 당신을 위해 새로운 라인을 인쇄 할 수 있습니다.
당신은 선택 사항 추가를 전달할 수 있습니다 매개 변수는 그렇게하지를 말합니다.
그러나에 대한 자세한 내용은 구글.
기본적으로 인쇄 라인을 다할 것입니다.
>> 좋아, 그래서 이동하자 다음 몇 가지 다른 것들.
어떻게 우리가 실제로 변수를 정의 할 수 있습니까?
우리는 그 사용의 할 수 두 가지 방법 중 하나.
그리고 내가 원하는 사람은 당신에게 처음에 관하여는이하자의 정의입니다.
그리고이 중요하다 효과적으로 때문에
우리가하는 일은 상수를 정의하는 것입니다.
우리는 변수를 만들려고하고있다, 또는 오히려 상수라는 이름,
일부 data--에서 그것을 제공 이 경우, 문자열 댄.
그러나 렛을​​ 이용하여 키워드, 우리가 말하는
이 variable-- 것을 또는 다시 호출 constant--
이름은 결코 변경 될 것 없다.
그것은 걸쳐 불변 될 것 이 프로그램의 지속 기간
또는 전역 상황의 지속 시간
것을 그 변수를 사용할 수 있습니다.
>> 이 때 정말 중요하다 당신이없는 일부 데이터가
프로그램에서 변경하려고, 당신은 다양한 예제를 볼 수 있습니다
우리가 사용하고자하는 경우에 대한 다른 구문을 대 보자,
당신이하게 사용하는 것이 중요 가능하면이 통지 때문에
그것이 언어 변경하지 않을,
그리고 실제로 수행 최적화의 많은
속도를 향상시키고, 프로그램의 안전.
그리고 안전, 나는 못하게 의미 미친 오류가 그것을 충돌
우리는 할 수 있음 C로 보는 것에 익숙해
>> 그 다음 우리는 문자열 보간을 사용할 수 있습니다 문자열 내에서이 작업을 캡슐화합니다.
그래서 우리는이에 볼 수 있습니다 인쇄 라인, 안녕하세요 인쇄,
다음 백 슬래시 열린 괄호를 사용하여, 다음 내 변수의 이름,
이 경우에 상수, 괄호를 닫습니다.
나는 기본적으로 다음을 걸었습니다 이 변수라는 이름의 내용
문자열의 내부 다음 이 결과, 인쇄.
>> 이 파일을 다른 하나의 변화가있다 이는 내가 맨 위에, 가지고있다,
, 오두막 라인에 배치하는 기본적으로 그냥 지정
나는를 사용하도록 스위프트 통역, 어떤
내가 더 이상 할 필요가 없습니다 것을 의미합니다 이 특정 프로그램을 컴파일합니다.
그냥 자신의 스크립트처럼 실행할 수 있습니다.
그러나 이것은 뒤에,이 경우에 있어서는, 장면은 컴파일 후되고
실행되고.
그것은 우리에게 단지 눈에 보이지 않는입니다.
>> 좋아, 그래서 이동하자.
그래서 약간의 꽁수가있다 그건 그냥 전에 일어났다.
난 당신이 내가을 보여 주었다 상수를 정의 할 수 있습니다.
그리고 나는 그것을 할 일부 데이터를 제공 할 수있다.
그러나이 경우, 내가하지 않았다 것을 알 수 실제 데이터의 종류를 지정
그것은이다.
그리고 그 때문이다 컴파일러, 스위프트 수
다만 기반 데이터의 타입을 추론 나는 그것을 넣어 데이터에.
그것은 이것을 평가 것을 알고 있기 때문에 변수 바로 여기,이 데이터 권리
여기에, 그것은 문자열 것을 알고있다.
그래서이 상수 이름은 그러므로 뿐만 아니라 문자열 될 것이다.
>> 그러나 우리는 또한 명시 될 수 있습니다 의 종류에 대한
우리는을 위해 사용하려고 상수 또는 변수
이 구문을 사용하여 instead-- 이름 대장 문자열과 동일하게
이 경우 우리가있어 의미 댄, 상수라는 이름을 정의하는 것.
이 String 유형이 될거야.
그리고 값은 댄 될 것입니다.
이제 다른 방법으로 그 우리는 variables-- 만들 수 있습니다
이들 변수는 가변, 어느 우리가 있다는 사실을 의미하려고
언젠가 그 내용을 변경할 수 있습니다 상황의 지속 시간
그 변수는 우리를 defined--된다 var 키워드를 사용하는 대신하자.
그러나 다시, 기본적으로하지 않는 한 당신은 알고있다 그 데이터를 조작하는 데 필요한,
대한 수 있도록 사용하려고 성능 향상.
>> 이 경우에, I는 수 데이터의 유형을 지정
우리는 내부 것으로 기대 레이블이라는 새로운 변수.
그것은 문자열이 될거야.
그리고 우리는 다음 연결하는거야 두 개의 문자열 함께, 문자열 안녕하세요,
그리고 문자열로 표시 변수, 또는 오히려 상수 이름.
>> 그래서이 때문에 좋은 다소 그 우리처럼 PHP됩니다
아주 쉬운 문자열 연결이 있습니다.
우리는 자동으로 필요가 없습니다 메모리 관리의 어떤 종류를 사용
크기를 증가해야 할 일 이 재미있는 것들의 어떤 종류.
우리가 실제로 기대하는 것처럼이 작동합니다.
>> 좋아,이에 대한 질문?
>> 이제 다른 이유로 그 우리는 당신이 능력이 필요
무엇을 정의 할 수 변수의 데이터 타입은
때때로 우리가하지 않기 때문이다 변수를 초기화 할
에서 일부 데이터와 정의의 포인트.
이 경우 자, 가정 해 봅시다 내가 입력을 시작할지
학년 책에 어떤 성적.
잘 나는 알고 중 하나가 내가되고 싶은 변수
변경 가능한 수준이 될 것입니다.
그리고 우리는 또한 알고 우리가 이 정수가되고 싶어요.
하지만 어쩌면 우리는 아직 할 그 등급을 사용할 수 있습니다.
>> 스위프트, 당신은해야 데이터의 유형을 정의
는 그와 연관된 변수 나 상수하자
당신이 실제로 할 수있는 전 그 변수를 사용합니다.
그것은 강력하게 형식화되어 있기 때문에, 당신은 유형을 연결해야
이러한 변수.
>> 내가 제대로하지 경우에,이 경우에 따라서 일부 값이 처음으로 초기화,
그때 스위프트에게 필요 I는 데이터 타입이 될 것으로 예상된다.
그리고 남아있는 것 그 동일한 데이터 형식
이 프로그램의 역사를 통해.
>> 지금 당신은 가능한 한 빨리 유혹 될 수 있습니다 나는이 등급의 변수를 만들었습니다
그리고 제공 내가 만약 지금 100의 정수,
연결하는 시도 할 그 정수와 문자열,
여전히 사용하고 싶은 유혹 될 수 있습니다 그 문자열 연결 연산자
같은 우리는 단지 몇 줄의 이전했다.
그러나 불행하게도, 이 사실은하지 않습니다
당신이 있기 때문에, 작업 기본적으로 수행
두 가지 유형에 대한 조작.
>> 지금이 다른 매우 다르다 정말 PHP와 같은 언어
유형의 자신의 종류와 loosey 거위.
그들은 단지, 그래, 좋아하고 무엇이든, 난 상관 없어.
그냥 나에게 한 가지 유형을 제공하고, 어쩌면 내가 옳은 일을 할 것입니다.
>> 이 경우, 스위프트는 유형에 대한 매우 엄격한
당신이 다루고있는 그.
이 요약 연산자 또는 연결 연산자
본질적으로 몇 가지가 있습니다 다른 가능한 옵션.
당신은 요약 할 수 있습니다 정수, 또는 당신과 함께
문자열 연결을 수행 할 수 있습니다 아마 다른 것들뿐만 아니라.
그러나 운영자는 인식하지 못하는 경우 그것의 양쪽에 무엇을,
또는 이들의 조합이 아니라 두 가지 유형이 예상 무슨 아니다
다음은 고장의 원인이하는 것입니다.
>> 이 경우에 그래서, 그것은 무엇을 의미 하는가 문자열 플러스의 정수를 가지고 있습니까?
음의 맥락에서 이, 우리는 아마 원하는
문자열 연결 작업을 수행합니다.
그러나 물론 컴퓨터 문맥의 종류가 없습니다.
그래서 우리는 제공해야 이 추가 정보
그것이 무엇을 알려 우리가하고 싶은 것입니다.
>> 즉, 실제로 그렇게 스위프트는 강력하게 형식화되어
당신이 할 필요가 의미 추가 작업의 약간
이 조작에 도착 당신이 원하는 것이 방법.
하지만, 그 결과, 안전하다.
그리고 당신은 일단 받아 이러한 유형의 계정에,
물건은 솔직히 시작 꽤 잘 작동합니다.
>> 이 경우에, 우리는 다음 것일 정도로 문자열 연결을 수행
명시 적으로 변환하여 문자열로 정수
이것에 싸서 자본 S 문자열 함수,
다음 문자열 연결을 사용하여 운영자는, 우리의 레이블 변수를 수정합니다
다음 그것을 밖으로 인쇄 할 수 있습니다.
>> 여태까지는 그런대로 잘됐다?
좋아, 이제 이동하자.
>> 이제 다양한 데이터 존재 우리는 스위프트에서 사용할 수있는 유형.
당신이 익숙해 해짐에 따라, 우리는 변경 가능한 배열을 만들 수 있습니다.
그리고 그 배열은 수 하나의 유형을 포함한다.
>> 이 경우, 우리가 만들거야 정수의 변경 가능한 배열하는
우리는 성적을 호출, 우리는 할 수 있습니다 이 대괄호에서 그것을 저장하기
당신과 같은 형식은 익숙한 성장했습니다 다른 언어의 다양한에.
하지만 우리가있어 여기에 통지 몇 가지를 정의.
등급은 변경 가능한 variable--입니다 우리는하자 키워드를 사용하지 마십시오.
그 의미 그래서 우리는 수정할 수 있습니다 이 배열의 내용.
그것은 형 배열 지능이다 우리는 말할 수
여기에이 대괄호를 기반으로.
>> 좋은 것들을 이제 하나 이것에 대해 그 우리는
많은 액세스를 가질 추가 정보
배열에 대해 바로 사용 몇 가지 간단한 점 표기법.
그래서 예를 들면, grades.count 우리에게 제공
그 존재 항목 개수 우리는 그 다음 꽤 액세스 할 수 있습니다 배열,
쉽게 단순히 점 표기법을 사용하여.
>> 당신은 추가 추가하려면 이 배열에 항목,
당신은 PHP 스타일을 할 수 없습니다 어디 그냥 명시 적으로 정의,
지정된 인덱스, 일부 값 당신은 삽입 할 것을.
대신, APPEND를 사용 배열 형의 메소드
이 목록에 해당 항목, 95을 추가합니다.
>> 그래서 지금이 배열에는 다음이 100, 0, 90, 85 contents--.
그리고 지금 우리가 추가 한 그 95도.
>> 다른 방법이 있습니다 우리는 일을 추가 할 수 있습니다.
당신은 실제로 사용할 수 있습니다 요약 연산자
어느 것으로 해석 될 배열 추가 작업.
그리고 당신은 다른를 추가 할 수 있습니다 그 내용 (70, 80) 배열되어,
그 배열.
그래서 지금 우리가 가지고있는 이 변수의 내용
100, 0, 90, 85, 95, 70, 및 80 grades--.
이것은 단지 좋은 작은 구문입니다 스위프트가 우리에게 제공 설탕.
>> 우리는 합계 싶다면 등급, 우리는 아마있어
반복 할 것 이 루프의 모든 항목을 통해.
그리고 우리는 스위프트의, 개념,해야합니까 의 루프 당신이 예상하는대로.
그러나 우리는 표시 방법 범위는 약간 다릅니다.
이 경우에 따라서 모든 것을 정리해 보면, 우리는거야
임시을 만들 것 우리를 위해 변수라고 합
이 수를 유지합니다.
>> 그리고 우리에 대한 통지 여기에 루프 구조.
0에서 인덱스를 들어 .. <grade.count.
그래서이 건설, 0 .. <grades.count 우리가 동작 범위는
우리가 만들려고하고 있다는 것을 말 0에서 최대 정수의 범위
뿐만 grades.count 제외.
그래서이 될 것이다 0, 1, 2, 3, 4, 5, 최대 그러나 많은 일까지
grades.count 전에.
>> 그래서이 방법과 다른 우리 루프를 일반적으로 사용하는 것
당신은 어떤 인덱스를했을 경우 변수, 처음에 0이 설정할
다음 몇 가지까지 그 통합 항목의 수보다 작은 값
그 배열.
>> 그래서 수정이 이에, 실제로,
이는 우리가 아주 쉽게를 할 수 있습니다 범위의 다른 유형을 설정합니다.
이 범위를 변경하는 경우 세 개의 점, 0 ... grade.count,
이 범위를 나타내는 0 포함 grades.count합니다,
그 숫자는 것을 의미 그 범위에 포함되어 있습니다.
>> 그러나 이것은 매우 편리 이러한 정확한 것들에 대한,
우리가 수행해야 할 때 루프를 통해 반복
그 인덱스는 제로 인덱싱되기 때문에, 우리는 다른 언어에서 보았 듯이
게다가.
루프이에 대한 질문?
>> 그래서 내재 된 정의가있다 이 인덱스 변수,
그 값은 0에서 시작하고, 모든 루프 반복에서 계속
점까지 1까지 증가 할 즉, grades.count 같음
어느 시점에서, 루프가 중단됩니다.
>> 우리의 문자열이 주목 여기 보간,
우리는 실제로 몇 가지 간단한을 수행 할 수 있습니다 그 값을 조작.
그래서 인덱스 플러스 1은 실제로 것 그 값의 요약을 수행
인덱스 때문에 이 경우, 정수.
그 때, 윌 다음 문자열로 변환
그리고, 여기에이 문자열로 보간 우리가 예상하는대로 및 인쇄. .
>> 그리고 좋은 점 배열에 대해 여기
우리는 또한이 할 수 있는지 페치 값과 설정 값
대괄호 표기법 등을 사용하여 우리는 다른 언어로 보았다.
>> 좋아요, 여기에서, 우리는 지금 우리의 등급의 모든 우리의 합을 계산합니다.
지금 종류의 다음을 논리적 인 단계가 될 것이다
찾기 위해 나눗셈 연산을 수행하는 그 성적의 평균 밖으로.
그러나 중요한 일 여기에 무슨 일이 일어나고있는
이 합은 아마도 정수이다이다.
그러나 우리는 몇 가지를 수행 할 필요가 이중 분할의 종류.
그리고이 될 것입니다 때 매우 중요합니다
우리는이 작업을 수행하려면, 우리가 무슨 말을하기 때문에
우리가 실제로 필요가있다 두 복식에 분할을 수행합니다.
그리고 다시, 스위프트 때문에 매우 강력하게 형식화되고,
우리는 명시 적으로 모든 설정해야합니다 복식에 항목 우리는 전에 실제로
해당 작업을 수행합니다.
>> 위해 우리를 위해 너무 이중 분할을 수행,
그것은 단지 하나의 충분한 아니다 해당 항목의 이중합니다.
둘 다 될 필요 빠른 위해서는 더블
이 있는지 확인합니다 우리가하고 싶은 것입니다.
그래서 우리는 명시 적으로 캐스트합니다 우리는 위에서 계산 한 금액
복식에 등급의 수 및 그 작업 및 저장을 수행
그 새로운 변수로, 또는 오히려 평균이라는 새로운 상수,
어떤 종류의, 당신이 상상할 어느 것인가?
두 번, 그래.
이 경우에 그래서, 우리 을 지정할 필요가 없습니다
그것으로부터 추론 될 수 있기 때문에 데이터 평균의 작업은 어떤 종류의
될거야.
그리고 스위프트는 일반적으로 아주 좋은 것입니다 약 타입을 추론 할 수있는.
>> 당신이보고 싶지 않습니다 실행하거나, 내가 이동할 수 있습니다?
나는 계속하고 싶다.
이 중 하나에 대한 질문?
큰.
>> 이제 우리는에 도착하기 시작하는거야 좋은 이예요 ... 정의 기능,
그리고 다른 종류의 커플 스위프트 고유 당신은하지 않았 음
다른 언어로 볼 수 이 시점까지,
하지만 그들은 다른 존재한다 당신이 나중에 찾을 수있는 언어.
그래서 일단 당신이 원하는 경우 함수를 정의하고,
당신은 펑키 한 단어로 정의 함수 다음 함수 이름,
다음 괄호 안에 인수 것을 당신은 그 기능에 동의합니다.
인수도해야 specify-- generally--
또한 데이터의 유형을 지정해야 그들은 추론 할 수없는 그들은이다.
그리고 우리는 그 작은을 볼 수 있습니다 조금의주의.
>> 그래서이 경우에 우리는이 기능은 printGradeCount했다.
우리는 동의거야 variable-- 또는 오히려이 경우,
constant--는 성적표를했다.
그리고 그것은이 될 것입니다 정수의 배열을 입력합니다.
이제 뭔가있다 이 여기 정말 중요합니다
것을 당신이 이해하고 싶다.
즉, 그 기본적으로 이러한 주장이다 이 기능에 입력되는 것을
암시 적하자 키워드로 정의, 이는 내가이 수정할 수 없습니다 것을 의미합니다
여기 성적표 변수입니다.
그리고 그런 종류의 의미가 당신이 데이터를 전달하고 있기 때문이다.
그리고 당신은 아마 그것을 원하지 않아요 당신 아래에서 변경 될 수 있습니다.
명시 적으로 언급 할 수있다 이 변수를 넣어이다
여기에 var 키워드.
하지만 우리가했습니다 잡았다이다 주의 사람 과거에 행한
그들은 그것이 무슨 가정이다 가변 될 때, 사실을
일정하다.
>> 좋아, 그래서 여기 그리고,이 경우에, 우리는 반환 유형을 지정하지 않습니다.
우리가 수행하는 방법을 보여 드리겠습니다 단지 순간에 그.
그러나 우리가 여기에 있음을 알 수 조건의 경우 단순한.
성적표는 경우 빈이 경우 어떤
이 정수의 단지 속성입니다 배열은, 우리는 뭔가를 인쇄 할 수 있습니다.
그렇지 않으면 우리는 다른 뭔가.
>> 꽤 간단 지금까지 나는 생각한다.
당신은 질문이있는 경우 그러나 저를 중지합니다.
>> 이제이 함수는, 평균도 얻어 일부 인수, 또는 오히려 하나의 인수,
성적표,이 시간이다 double 형을 반환하는 것입니다.
이 계산되기 때문에 평균 그건
실제로을 반환 할 것 호출 라인에 계산 된 평균.
>> 이 경우, 우리는를 지정할 화살표 후 유형을 반환합니다.
그리고 이것은 느낄 수 처음에는 이상한 가지.
당신은 익숙해 져있어 반환을 설정하는
함수의 이름 앞에 입력합니다.
하지만 당신이 생각하는 경우 수학의 관점에서,
같은 당신은 수학이있을 때 그 함수를 정의,
당신은 일부 기능을 가지고 입력은, 그것을 출력을 생성한다.
그리고 그게 정확히 무엇을의 이것은 모방 할 예정이다.
그리고 다른 언어의 몇 가지있다 그뿐만 아니라, 유사한 구문이
하지만 아마 아무도 없다 당신은 CS50에서 보았다.
그러나 여전히 혼동하지 마십시오.
화살표는 무슨 일을 의미합니다 이 경우 반환합니다.
좋아, 그럼 우리가 어떻게 가고있다 이 평균을 계산하는 방법?
음, 경우 성적표 비어있는, 그럼 우리는있어
이는 어쩌면, 0을 반환하는 것 합리적인 방법이 치료를 위해.
나는 이제 오게 몰라 다시 그에게 조금의.
이것은 실제로하지 않을 수 있습니다 합리적인 방법이 될
만약 평균을 계산 우리는 빈 성적표 있습니다.
>> 그런 다음 우리는 단지 우리의 요약을 수행합니다.
우리는 실제로 여기에 주목 의 다른 버전
우리는 반복 할 수 루프에 대한 배열의 모든 단일 항목 이상
각 요소를 배치 자신의 변수로.
에서 등급에 대한 지정하여 성적표, 우리가 무슨 말을하는거야
우리가 암시 거라고이다 라는 새 일정을 생성
표현하는 것입니다 등급 성적표의 모든 고유 아이템
때마다 그 루프 반복의에게.
그래서 처음 이 실행있어, 등급 것
성적표의 첫 번째 항목 수.
두 번째 시간이 될 것입니다 두 번째 항목, 등등 등등
성적표는이 때까지 요소 자체를 소진.
그런 다음 우리는 요약 할 수있을 것입니다 우리의 합계 변수로 등급
우리의 평균을 반환 로 우리는 전에 본 적이.
확인, 질문?
네?
청중 : 나는 두 가지 질문이 있습니다.
첫째, 가설, 수 이 하나의 정수를 실행?
를 할 필요가 없습니다 이중, 맞습니까?
DAN AMRMENDARIZ : 수 당신 그 질문을 반복?
청중 : 나는 할 수있다 평균으로 정수?
DAN AMRMENDARIZ : 수 당신 평균으로 정수를합니까?
그래서 정수를 반환 대신 이중의 평균?
>> 청중 : 당신을 Return-- 그 지금 아래에 있습니다.
DAN AMRMENDARIZ : 바로 여기, 0.0 반환?
청중 : 네, 그냥 0을 반환합니다.
그래서이 될 것입니다 80 또는 85가 아닌 85.2.
>> DAN AMRMENDARIZ : 경우에 따라서, 그래서 몇 가지 방법있다
대답합니다.
저를 순서대로 답할 수 있도록.
난 그냥이 반환을한다면 0, 0은 정수 값이다.
그리고 그 원인이됩니다 이 경우에 대한 입력 오류
그것은 더블을 기대하고 있기 때문에 그러나 정수를 반환한다.
나는 정수를 반환 할 경우에, 나는 할 수 있습니다.
나는 반환 형식을 설정할 수 있습니다 , int로 여기에 0을 반환하고,
이중 분할을 수행하지.
그러나 우리는 것 정수 나누기를하고.
그래서 우리는 다음을 얻을 수 없겠죠 우리가 가능해야 함을 평균.
하지만 그래 우리가 수정할 수 있습니다 그 방법의 종류.
>> 청중 : 그리고 둘째로, 당신을 상단에 한 두 번이있다.
그러나 아래로 아래, 때를 더블 더블을 반환 할,
그 자동 이미 두 형식을 반환.
왜 당신은 아직도 그것을 정의해야합니까 더블 상단에 화살표와 함께?
>> DAN AMRMENDARIZ : 그래서 그 경우는 일부
의 짓이야 그래서, 질문을 반복 그것은 반환에서 암시 때문에
여기 유형, 어떤 유형이 실제로 , 우리는 스위프트에 명시해야
우리가 원하는 일에 대해 이 기능을 밖으로 돌려
이 입력 수행 할 때되도록 확인, 그것은 확실히 할 수 있습니다
우리가 실제로 쓴 무슨 아래 아래로 실제로 그 준수합니다.
그래서 검사 같은 종류의의 상황을 자신에게 일종의.
그러나이으로 죠
>> 청중 : [들리지] 화살표?
>> DAN AMRMENDARIZ : 경우 경우가 있습니다 우리는 우리가 암시 적으로 할 수 있도록 지정할 수 있습니다
반환 형식을 설정합니다.
그러나이 경우, 나는하지 않습니다 그래도 문제가 해결 것이라고 생각합니다.
다른 구문이있다 우리가 나중에 볼 수있다.
>> 좋아요,이 소스 코드는 조금 다르다
이에서 인수를 구문 분석하기 때문에 우리가 호출하는 기능.
그것이 어떻게 작동하는지 내가 당신을 보여 드리죠 우리는 사실에 이동하기 전에
몇 가지 흥미로운 것들 그 스위프트에서 일어나고.
>> 이 경우에 그래서, 경우에게 난 그냥이 실행 그것이 무엇을하고 있는지 코드, 그 통지
is-- 동안, 가지 나에게 이상한 오류가 있습니다.
나는 그것의 몇 가지를 통과해야 명령 줄 인수로 정수.
그럼, 150과 80을 보자,하고 Enter 키를 누르십시오 실제로 무엇을하고 있는지 알 수 있습니다.
그것은 각각 수용있어 정수로이 값.
이 성적표로 입력합니다.
그리고 그것을 수행하는 것 그 평균 계산
우리가 예상하는대로 있음을 출력한다.
>> 그러나 분명히 뭔가가가는 거기 이 거부 뭔가에
정수로 뭔가.
당신은 우리가 있었던 때부터 기억 하듯이 명령 행 인수를 처리
첫 번째 C와 다른 언어로 해당 명령 줄 인수에 0 번째 항목
목록은 명령의 이름입니다 우리는 실제로 실행있다.
이 경우에 그래서, 난 그냥 반복 해요 모든 명령 줄 인수를 통해.
그러나 나는 멋진 어떤 종류의 일을하고 있지 않다 첫 번째 것을 건너 확인합니다.
난 그냥 명시 적 있어요 아니면 암시 해요 이러한 유형의 어떤 확인
정수는 실제로 내가 전에 있습니다 이 계산을 수행합니다.
>> 그리고 그 본질적이다 무슨 일이 여기에 무슨 일이 일어나고.
모든 인수에 대한 프로세스의 인수,
나는 몇 가지 검사를 수행하겠습니다.
이 경우, 내가 갈거야 처음으로 변환하려고합니다
정수로 그 인수 명시 적 타입 변환을 수행,
그것은, 입력에, 문자열이기 때문이다 아닌 정수 사실.
>> 하지만이 이상한 구문 종류, 하자 등급은 지능 (인수)와 동일합니다.
실제로 무슨 일 여기에 매우입니다
당신의 사용 스위프트 중요.
이것은 무엇의 사용 옵션 형이라고합니다.
>> 따라서이 기능, 지능 (인수) 뿐만 아니라 정수,하지만 수익을 반환
무엇을 선택 정수라고.
그래서이 일종의입니다 유형의 상단에 유형.
당신은 일종의처럼 상상할 수 이 패키지처럼 반환합니다.
그리고 당신은 열 때 패키지, 그 중 하나
결과 정수를 가지고, 또는 전혀 거기에 절대적으로 아무것도 없습니다.
이것은 오류 체크로서 유용한 기구 때문에이 경우
우리가 찾을 수 있습니다,이이었다 형식 변환에 성공?
이 되었다면, 이것은 사실상 내부의 정수를해야 할 것.
그렇지 않으면 일부를 것 우리가 전무 전화 할게 가치있는
전혀 정수의 대표입니다.
정말 아무것도의 대표입니다.
>> 그리고이 경우 건설 우리는 패키지를 푸는 할 수 있습니다,
바인딩을 선택.
그리고 우리는 랩을 해제 할 수있는 경우 패키지 내부의 정수를 발견,
그 다음 우리가 말하는 여기에 우리가 다음 것입니다
그 값으로 설정 될 수 있도록 등급이라는 정수입니다.
그리고 if 문이 부분, if 문 상단 부분
실행이 때문에 것 기 해제에 성공했습니다.
>> 그냥 그래서 발생하는 경우 오류가 아마도이 있었다
이 명시 적 형식 변환에 어쩌면, 정수로 문자열에서
그것은 예를 들면 값 ABC이다.
그리고 실제로 않을거야 정수로 변환합니다.
그런 다음, 전무를 반환합니다 어떤 정수 아니다.
그리고이 경우 문은 그럼 실패합니다.
때문에 존재하지 않습니다 등급 그것은 어떤 정수 함량이 없다.
그리고 대신이 다른 블록을 실행합니다.
네?
>> 청중 : 무기 호는 N-I-L인가?
DAN AMRMENDARIZ : 무기 호 예, N-I-L이다.
>> 그래서 이것은 아마 중 하나입니다 스위프트에 대한 어려운 것,
당신은에있어 특히 iOS 앱에 잡초
당신은 실제로 시도하고있다 거기에 몇 가지 개발을 할 수 있습니다.
그것은 소리 할 것 에 대한 선택 당신.
그것은 당신을 요구 할 것 물음표와 느낌표.
하지만 경우에 당신은 out-- 파악하면 파악에 시간을 할애
무슨 일이, 옵션 유형에 대한 것입니다 당신은 자신에게 두통을 많이 절약 할 수
당신이하려고하는 등 스위프트의 응용 프로그램을 작성합니다.
>> 실제로 매우 강력한 기능입니다.
그리고 당신은해야합니다 지금은 내 말을.
그러나 우리는이 구조를 볼 수 있습니다 일부 다른 사람은 그것을 좋아
다른 소스 코드의 일부에 해당 우리는 조금 당신을 보여줄 것이다.
>> 어떤 초기 질문은 여기에 있습니까?
그래서 중요한 테이크 아웃은이다 옵션 타입은 메타 타입의 일종이다.
그것은 하나는, 값을 갖는다 그리고 그 후, 않는 경우
아마도 관련된 그 값을가집니다 그것으로, 또는 아무런 가치가없는,
그것은 닐에 의해 표현된다.
이 나머지는 아마도 당신이 예상하는대로.
>> 그럼 램프 업하자 어려움을 다시 한번.
그리고 이번에는의 몇 가지 살펴 보자 실제로 존재하는 다른 데이터 유형.
그 중 하나 인 사전 인 파이썬 사전과 매우 유사합니다.
이 해시 테이블에서 다소 유사 C. 그것은 본질적으로 키의 매핑
여기서 키 문자열이 될 수 있습니다.
그리고 당신이 그 열쇠를 볼 때, 그 키 값을 갖게됩니다.
그래서, 아주 배열 아니지만 대신, 더 밀접하게 관련
해시 맵 또는 해시 테이블.
>> 의이가 생각하는 방법을 알아 보자 실제로 우리 전에 작동합니다
소스 코드 자체로 이동합니다.
난 그냥이를 실행하면, 아무것도 실제로 발생하지 않습니다.
내가 기대하고있어 그것이 나를 말하고 다음과 같은 유형의 몇 가지 매개 변수를 설정합니다.
그래서 나는에게 제공하겠습니다 그것은 몇 가지 문제 설정 이름,
그래서 PSET0, 어쩌면 나는 100을 얻었다.
그리고 PSET1, 나는 5를 얻었다.
그리고 시험에, 나는 정말 잘했고, (30)을 얻었다.
그리고 죄송합니다, 나는 여기에 공간을했다.
>> 내가 Enter 키를 누르 때, 당신은 볼 수 있습니다 그것은 몇 가지 계산을 수행한다.
이 성적표는 세 말한다 등급, PSET1, PSET0, 시험.
그리고 성적표는있다 이 특정 평균.
그래서 다시, 우리는 최선을 다하고 있습니다 이 성적표 아이디어와,
그러나 우리는 반복하는 계속거야 우리의 기능의 복잡성.
>> 발병 그래서, 우리는 그냥있어 함수를 만드는 것 그
인쇄 사용량을 담당한다.
그리고이 종료있다 하는 것입니다 기능 단지
응용 프로그램을 강제로 종료합니다.
이 일이 아닙니다 그 당신은 iOS 앱에 사용합니다.
이것은,이 경우, 인 명령 행 인수와 함께.
다음으로 우리는 엑스 코드를 향해 움직이기 시작합니다.
하지만이 명령에 특정 스위프트의 선 스타일 프로그램.
>> 이제 몇 가지를 살펴 보자 여기에 흥미로운 것들.
의는 단지 몇 보자 흥미로운 것들을 아마 언급
그게 내 기능에 등급 번호를 인쇄,
당신은 내가 그 목록을 한 것으로 기억 수도 있습니다 items-- PSET1, PSET0 및 시험.
당신은 실제로 신속 쉽게이 작업을 수행
인 성적표를 취함으로써 키와 값을 가지고 사전.
키 모두를 통해 알게 여기 키 도트 방식,
다음,이 joinWithSeparator를 사용 다음 키를 모두 취할 것이다
우리가에 입력했다고, pset1-- 또는 죄송합니다, PSET0, PSET1 및 exam--
이들을 함께 연결할 쉼표와 공간을 사용
하나의 긴 문자열을 만들 수 있습니다.
이 조인 조작은 급격입니다 다양한 상황에서 유용합니다.
그리고 그것은이 joinWithSeparator이다.
>> 그리고 이것은의 한 가지이다 스위프트 1 스위프트 2로 변경되었습니다.
를있을 사용 파이썬 style-- 당신이 있다면
Python-- 파이썬에 익숙 스타일 문자열에 방법을 가입 할 수 있습니다.
그러나 그것은 더 이상 없다 스위프트 2의 경우.
당신은 당신이 원하는 경우에 사용하려는 물건의 배열을 연결하는
함께 문자열.
>> 그래서 아마도 다음에 우리의 이전 평균의 토론,
그것은 조금 더 의미가 있습니다 우리는 평균 기능을 설정하려면
오히려 임의의 이중를 할 수 다만 명시 적으로 두 배 이상.
우리는 있었기 때문에 특별한 조건 경우,
어떤 성적표 실제로 경우 그 안에 어떤 값이 없다?
무엇 평균 반환해야합니까?
>> 그럼 아마 C에서 당신 뭔가를했을
같은 감시 값을 제공하는 등의 0.0, 아니면 음수,
또는 뭔가는 사실을 나타내는 일부 오류 조건이 있다는 것을
당신은 아마도 사실이 없습니다 그 평균을 산출 할 수있는 능력.
음을 지정의 아름다움 옵션 유형은 그렇게하는 것입니다.
그리고 지금은이 모든 단어를 말하고,하지만 해요 이것은 실제로 optionals를 사용하지 않습니다.
그러나 우리는 그냥 그렇게 볼 수 있습니다 우리는 평균 설정할 수있는 분
그래서 선택적 데이터 유형으로 실제로 다음 몇 가지 데이터를 반환하는 경우
우리는 데이터를 반환합니다.
그렇지 않으면 우리는 돌아갑니다 무기 호는이 말하는
의미있는 계산이 없습니다.
>> 의 다른 뭔가로 이동하자.
여기에서 그래서 우리는보고 있었어요 커맨드 라인에서 모든 이들 예.
하지만 실제로는거야 무슨 취급하는 것은 엑스 코드입니다.
그리고 좋은 점 중 하나 엑스 코드이며, 특히 스위프트에,
우리는이 문제를 가지고있다 일이 놀이터를했다.
그리고 놀이터입니다 모든 iOS 앱에서.
그러나 당신이 실험을 할 수 있습니다 아주 쉬운 방법으로 스위프트와.
당신은 당신의 모든 코드를 입력 할 수 있습니다.
그것은 잘 여기에서 강조 구문입니다.
새 파일을 만들 때, 그것은 요청합니다 당신은 당신은 놀이터를 만들려면.
그러나 놀이터의 좋은 점 즉, 당신의 윈도우의 오른쪽에
실제로 보여 않습니다 코드에서 출력.
나는 아래로 스크롤한다면, 우리는 무엇을 볼 수 있습니다 코드의 여러 라인의 출력
실제로 될 일이.
>> 이 경우에 그래서, 우리는 갈거야 방향을 조금 변경
정말 뭔가에 대해 이야기 이 높은 수준의 방법에 중요한
스위프트는 그것과를 운영하고 있음 클로저의 생각이다.
그리고 당신은 아마 본 적이 자바 스크립트에 약간.
당신의 사람들이 들어 CS50에, 폐쇄
일을 매우 인기가 아주 좋은 방법입니다 현대적인 언어로 높은 수준의 것들.
그러나 그것은 또한에 가지 어려운 처음으로 주위에 당신의 머리를 정리.
이 보이는 것 그래서 처음, 그 괜찮아요.
그냥 소스 코드를보고 참조 여러분이 가정에서 그것을 알아낼 수 있다면.
>> 이 경우에 그래서, 그런 말을하자 우리 지수를 많이 생성 할
어떤 고정 된 값.
그래서이 경우에 나는 함수를 만들 수 있습니다.
나는 전력을 호출하는거야 인생의 2 누구의 유일한 목적
일부 입력 더블을하는 것입니다 그것은, 그 값을 반환합니다.
내가 여기에 알 수 있습니다 데이터의 하나의 유형을 수용.
이 X라는 변수가 될 것.
이 유형 더블의입니다.
그리고 나는 여기에 두 번을 반환하는거야.
그리고 난 그냥 할거야 아주 솔직히 꽤
이 값을 두 배로 순진 방법.
그리고 난 당신이 왜 보여주지 단지 두 번째에 유용하다.
>> 우리가이 범위를 가지고 그 여기에 주목 다시. 1 일, 점에 대한
것을 의미한다 점 점, 2, 이 루프는 두 번 실행됩니다.
그러나 이것은 더미 변수를 나타냅니다.
그것은 정말 않을거야 의미 어디 그 변수를 사용
이 루프의 내부.
난 그냥이 줄을 원하는 코드의 두 번 실행하기 위해,
알 필요없이 그 범위의 값입니다.
>> 이 경우 내가 결과를 실행 해요 그래서 시간은 기본적으로 두 번 X
나는이 값을 제곱있어 것을 의미한다.
그리고이 일이 우리가 예상하는대로 작동합니다.
(2)의 전력의 값을 전달 2.0은 우리에게 4의 출력을 제공합니다.
10.24 3.2 작품.
>> 이제 우리는 비슷한 작업을 수행 할 수 있습니다 3의 힘에 대한 것.
그러나 이제 범위를 변경합니다.
1의 더미 변수 1-3, 3 회 곱
과 같은 일을.
>> 그래서이 조금 인위적인 느낌이 있습니다.
그러나 중요한있다 여기에 일이있는
이보고 있다는 것입니다 두 가지 기능, 거기에
다른의 단 한 가지, 어떤 범위에서이 값입니다.
이 두 가지에 대한 다른 모든 기능, 3의 전력과 2의 전원,
아르 사실상 동일하기 때문에 그것들은 동일한 방식으로 작동한다.
>> 이 때, 조금 그래서 알람 벨이 꺼져가는되어야한다.
희망 당신은 무슨 말을하는지, 당신도 알다시피,이 조금 느낌
노력의 중복 등을들 수있다.
아마도 방법은 내가 것있다 이 모든 것을 캡슐화 할 수
및 기능을 제공하는 또는 기능을 만드는 것이
정확히 내가없이 원하는 것을 명시 적으로 그것을 입력 할 필요.
그리고 이것은 어떤 힘 폐쇄의 우리가 수행 할 수 있습니다.
그래서이 살펴 보자.
그리고 나는 몇 가지를 보낼거야 이에 분,이 때문에
스위프트을 위해 매우 중요하다.
우리는이 모든 시간을 참조하십시오.
우리는 함수를 정의하는 것입니다.
그것은 powerOf 호출 할 것입니다.
그것은을 받아 들일 것 매개 변수는 int 형의 Y를했다.
그러나 반환 형식을 살펴.
반환 형식에서, 괄호는 더블 더블 화살표.
이 기능 즉, 이 기능 powerOf,
함수 반환된다.
즉, 두 번을 받고있다 더블을 반환.
그래서 미친의 종류 들릴 수도, 하지만 이제 조금 아래로 스크롤 할 수
무슨 일이 일어나는지 볼 본다.
우리는이 기능 powerOf의 내부입니다.
우리는 새로운 기능을 만드는 exponentiator라고,
하지만 그것이 무엇인지는 중요하지 않습니다.
>> 이 연관되어 있습니다 X의 입력 값.
그리고 두 번에 복용 더블을 반환.
이는 동일한 코드는 그 우리 2의 값 것 이외에는, 상술 한 본
3 또는 값, 그 그 범위의 상한,
로 대체되었습니다 Y의 값이 어느
초기 매개 변수였다 우리의 powerOf 기능.
그리고이 시점에서, 우리 exponentiator을 반환합니다.
우리는 함수를 반환하고 있습니다.
>> 그것은 종류의 작은 마음 불고 같다.
그러나 이제 무슨 가정 해 봅시다 나는이 함수를 호출 할 때 powerOf
2처럼에 어떤 값을 전달합니다.
이것이 의미하는 것입니다 지금 값을 가질
이 값을 의미 Y 2, 이 exponentiator 기능에 Y
그 값이 될 것입니다.
그러나 나는이 반환 해요 exponentiator 기능.
>> 그래서 스위프트 내가 말하는 것을 알 수 이 경우 만들었습니다.
광장, 그것은 정의의되어 보자 더블을 허용하는 기능
더블을 반환합니다.
나는 함수를 만들었습니다 사각형 뭔가 그
바로 여기에이 메커니즘을 사용하여.
정말 무슨 일이 일어나고 있는지입니다 이 함수를 반환하는 것을
exponentiator 있지만,이 값 Y는 내부에 싸여있다.
그래서 지금 때마다 나는 이것을 사용 변수 또는이 상수라는
광장, 그것은 그것이야 함수로 동작합니다.
그래서 나는 그 변수를 호출 할 수 있습니다 같은 난 함수를 호출,
그리고 그것으로 번호를 전달, 이 경우 3 등을들 수있다.
그리고이 값을 제곱합니다.
그래서 3는 것이다 제곱 우리가 여기에서 볼 수 있듯이, 9가된다.
>> 정말 미친,하지만 지금 나에게 기회를 허용한다
다른 powerOf 기능을 만들 수 있습니다.
나는 확인, 글쎄 지금은 내가 원하는 말할 수처럼 새로운 기능을 만들려면 powerOf (3)
과에 그 저장 상수라는 큐브.
이제 큐브를 될 것입니다 다음 것이다 별도의 기능
입력 및 큐브와 같은 일부 값을 그 우리가 하단 라인에서 볼 수 있듯이 값
이리.
2 큐브는 8 초래할 것입니다.
>> 희망이 꽤 깔끔한 물건.
당신은 전에 본 적이 없어요.
나는 폐쇄 살펴 보시기 바랍니다 그리고 조금 더이 조사.
그것은 우리가 많이 정말 강력한 물건을 볼 것 자바 스크립트와 다른 언어.
그것은 정말 매우 중요 뿐만 아니라 API를 이해
우리는 단지 1 초에 도착거야.
네?
>> 청중 : 때 당신이 할 powerOf (2), 괄호 다음
다른 괄호, 다른 input-- 당신은 기본적으로 사각형을 대체하고 있습니다.
DAN AMRMENDARIZ : 그래서 보면 여기에 맨 마지막 줄에서.
사실은 전혀 가능 당신이 제안 체인 그렇게.
그래서 powerOf (5) 우리가 가고 있다는 것을 의미한다 여기에 5 exponentiator을합니다.
그래서 이것은 본질적으로 될 것입니다 다섯 번째 전원 4와 같은 것,
우리는 제곱 승을 만들었습니다 때문에 다섯 번째 전원 기능,
우리는에 전달하고 그 값 4를 작동합니다.
그리고 우리는 그 가치를 우리는 1024 기대.
청중 : 그리고 그것은 아니다 그것은 쉽게하므로, 이름
무엇이든 사각형을 읽을 수 있습니다.
>> DAN AMRMENDARIZ : 오른쪽, 정확하게.
난 그냥 넣어 전에 그래서 여기 그래서 일정에
그것은 한 것으로는 쉽게 그 이름을 사용합니다.
네?
>> 청중 : 이러한 맥락에서 powerOf,이 부분
프로그래밍 언어의 방법 당신에 반대
[들림]에 powerOf 생각?
DAN AMRMENDARIZ : 그래서 이 경우, powerOf
단순히 이름입니다 내가 여기에 정의 된 함수.
그래서 고유 아니다 언어 자체에,
대신, 그것은 단지 이 기능
그 이름 난에게 그 이름을 제공하기 때문이다.
다른 질문?
괜찮아.
>> 지금이 중대하다.
하지만 당신을보고하지 않을거야 폐쇄 기능의 많은 것을
사용자가 정의한 경우 내부,이처럼 하나의 기능, 다른 기능.
그리고 당신은 그것을 할 수 있습니다.
그러나 가지 아니다 정말 필요한, ​​오른쪽?
나는이 정의 않는 이유처럼 기능이라고 exponentiator
다음 즉시 반환합니다.
수없는 이유는 내가 바로 바로 이 기능을 반환?
>> 사실, 이것은 정확하게 라는 개념 뒤에 아이디어
익명 함수, 익명 함수는 실제로하지 않습니다
그들 때문에 이름이 하나를 가질 필요가 없습니다.
그리고이 경우,도 7b에있어서, 우리는 정확하게 그것을 찾을 수 있습니다.
그것은 모두 같은 코드입니다 정확히 같은 일을
하지만 지금 우리는 그래서 약간 변경했습니다 그이 powerOf 기능 즉시
함수를 반환합니다.
복귀 후 그 주목, 열린 중괄호가있다.
그것은이 입력 더블을 기대합니다.
그것은 그 출력을 두 번 기대합니다.
그리고 다음의 키워드 코드 자체를 분리합니다.
그래서이 익명의 기능입니다.
실제로 반면, 이름이없는 전에이 exponentiator 불렀다.
그러나 우리는 정말, 본대로 exponentiator을 참조하지 않았다
그 함수의 외부.
그래서 그것은 중요하지 않았다.
따라서이 익명 함수는 이 무명이기 때문에 소위,
하지만 여전히 사용하고있어 이 코드의 컨텍스트.
>> 난 다음 몇 가지 것들 잘하면 계속 진행
당신의 마음을 조금 불고.
우리는이 훨씬 더를 단순화 할 수 있습니다.
기민 있다는 사실 때문에 앞서 지적
아마 우리는 사실에 의해, 알고 이 코드에서 추론, 무엇을
이 코드의 출력이 될 것이다.
그리고 사실,이 익명의 기능에, 우리는 실제로 데이터의 타입을 추론 할 수있다.
>> 그래서이 하나, 우리는 더 이상 없다 명시 적으로 정의 할 필요가
인 데이터의 타입 이 함수의 입력 및 출력
몇 가지 이유로.
하나는 우리가 바라, 정의한 것입니다 바깥 쪽 함수의 프로토 타입,
데이터 익명의 유형 기능은 입력 및 출력해야한다.
그리고 다른에서, 우리 코드에서 추론 할 수있다
여기 아래 우리는 동의하는 그 두 번 유형 인 입력
더블을 반환.
>> 우리가 명시 적으로하지 않은 여기에 알 수 있습니다 인수의 이름을 정의
하는 것이이 기능 받고있다.
그래서 우리는 우리가 참조 할 수 있습니다 참조 $ 0 $ 1을 사용 이러한 매개 변수,
등등 등등에 따라 사용 된 파라미터의 개수
이 기능에.
>> 이것은 당신이가는 일이다 많은이 열린 중괄호입니다 볼 수 있습니다
정의 다음 $ 0을 입력 한 다음 몇 가지 동작,
다음 닫힌 중괄호.
즉, 익명 함수 즉,이 동작을 수행한다.
그것은이 매개 변수 곳이있다 이 유형의 추론이다입니다.
즉, 첫 번째 매개 변수는 $ 0입니다.
그리고 어떤 동작입니다 그 $ 0 일어나고.
>> 청중 : 달러 기호 그래서 기본적으로 매개 변수를 의미
0이 첫 번째 수단?
DAN ARMENDARIZ : 맞습니다.
그래서 달러 기호는 기본적으로 의미 파라미터는, 0은 제를 의미한다.
그러나에 구체적으로 작동 내가 이름을 지정하지 않은이 경우
내 익명 함수의 인수.
>> 청중 : 펄 또는 뭔가가 있습니까 거기에이 달러 기호, 달러 0?
DAN ARMENDARIZ : 미안 해요, 어떤합니까?
청중 : 펄이 있습니까 이 달러 0 달러 1--
DAN ARMENDARIZ : 나는 아니에요 펄 너무 잘 알고,
하지만 PHP는 어떤 변수를 정의 달러 기호를 기반으로.
그리고 일부 언어가있을 수 있습니다 이 같은 기능을 가지고있다.
사실, 스위프트가 차용 이 같은 기능의 많은
다른 언어의 로트.
우리는 파이썬의 힌트을 참조하십시오.
유형이 정의 OCaml의에서 오는 것 같다.
그리고 우리는 단지 전체 무리가 다른 언어를 많이에서 물건.
즉, 좋은 중 하나 스위프트에 대한 것들
그것은 가장 많이 걸립니다이다 언어의 무리에서 아이디어
함께 그들 모두를 shoehorns 수퍼 언어로.
사실, 경우에 당신이 날 수 있도록 당신의 마음을 불고 계속
그래서 우리는이 모든 일을했습니다.
우리는 아마도이 조금 단순화 할 수 있습니다 물론, 그 실현에 의해 비트,
스위프트는 제곱 승을 가지고 기능이 내장되어 있습니다.
나는 다윈을 가져 오면되는 바로 라이브러리입니다
지금,이 함수 호출 펑 특징 나는 기능의 내 능력을 단순화 할 수 있습니다
다음이어야합니다.
그것은 반환 될 것입니다 이 익명 함수.
>> 하지만이 지금 얼마나 간단한 봐.
이 익명의 기능입니다 몇몇 유형의 데이터를 받아들이고,
그것은 하나가 될 것입니다 인수 특히,
유형을 두 번이다 그 $ 0 참조.
이 유형 더블을 반환하는 것입니다.
그러나 return 문 지금 암시입니다.
>> 그리고이 정확한 스타일입니다 , 스위프트에 매우 유행
모든 곳에.
우리는이를 보게 될 것입니다 스위프트의 모든 시간.
그래서 난에이 모든 것을 보여주는거야 당신이 구문 때문이다.
이것은 매우 일반적입니다 을 의미하는 볼
익명 함수는 그 수행
이러한 주장에 대한 몇 가지 작업.
그리고 암시 적 반환있다.
그래서 절대적으로 같은 일이다 우리는 바로 여기,이 대답합니다.
>> 이 곱슬 때문에 브래킷은, 함수
우리는이 작업을 수행 할 수있어 첫 번째 인수에.
우리는 그것을 반환 할 것입니다.
그러나이 외부 반환은 그 모든 기능을 반환
그 전체 익명 함수 우리는 단지 만들었습니다.
다른 질문?
좋아, 내가 알고하지 않습니다 너희들이 준비되어
그러나 우리는 스위프트와도 미쳤 갈 수 있습니다.
당신 준비?
확인이 중대하다.
>> 이제 실제 능력을 가지고 에, 스위프트에, 때문에 어떻게 모듈의
프로토콜 기반의 방법과는에있다 우리 자신의 괴물 연산자를 정의합니다.
이 경우처럼, 우리가 가진 없음 잘 exponentiation--에 대한 연산자,
무언가의 힘을 수행.
하지만, 스위프트의 새를 정의 할 수 있습니다 정확하게 그 작업을 수행 연산자.
그래서이 경우에있어 여기 구문의 무리.
그리고 나는 당신이 그것을 볼 수 있도록 할 것이다 집에서 만약 당신이 볼 때.
그러나 우리는이 중위를 정의 운영자는, **, 이는 다음, 우리를 수
그 무엇을 정의하여 기능 ** 실제로
, 왼손을 적용합니다 않습니다 측면 및 오른쪽,
그리고 그의 지수를 반환 왼쪽에서 오른쪽 편.
>> 그리고 지금 갑자기 나는 모든 새로운 분자를 만들었습니다.
그래서 2 ** 3은 제 2 전원을 의미한다.
[마음 BLOWING 사운드]이을에 의해 자체는, 당신이처럼해야
확인, 나사 C. 나는거야 스위프트 모든 방법.
이 중대하다.
이 꽤 훌륭하다.
>> 하지만이 좋은 예입니다.
그러나 나는 한 번 밖에 결코 없다 본 예의 실제로
내 자신의 연산자를 정의했다.
하지만 여전히, 그것은 보여줍니다 스위프트의 힘을 많이
이것은 실제로 이유 정말 멋진.
예, OK?
청중 : 당신이 있다면 자신의 연산자를 정의,
당신은 당신이 실수하지 않는 아는 방법 시도의 연산자를 만들
C에서 어딘가에서, 같은 스위프트 어딘가에 숨겨진,
모호한 같은 당신을 전에 보지 않았을 수 있습니다.
>> DAN ARMENDARIZ : 당신이하려는 경우 그래서 자신의 연산자를 정의하려면
정의의 위험이있다 기존 운영자를 통해 하나.
즉, 상세 수준이로 전환 나는 우리가 가서 시간이 생각하지 않습니다.
하지만 그 위험이있다.
그리고 그것은 매우 이유는 사실이다 나는 캐럿 기호를 사용하지 않았다
우리가 전력을 입력 할 때, 우리는 보통 4 작은 캐럿 5 것을 사용
그렇게, 그냥 우리가있을 때 친구 또는 무엇이든을 Gchatting.
그러나이 경우에, 실제로 충돌의 원인이됩니다.
그래서 난 그냥 있기 때문에 그것을 방지 나는이 경우에 알고 있었
즉, 그 충돌을 일으킬 것이다.
>> 괜찮아.
지금 불행하게도, 대한 지난 7 분
나는 불어를 유지해야 당신의 마음을 조금.
그래서 내가 당신을 표시 할 수 있습니다 다른 것들뿐만 아니라.
>> 우리는 당신의 생각을 보여 주었다 이들 익명의 기능을 갖는,
당신을 수있는 다음과 같은 폐쇄 종류의 주변 기능을 전달합니다.
당신이 그들을 반환 할 수 있습니다.
당신은 그것들을 조작 할 수 있습니다.
당신은 미친 것들의 모든 종류의 작업을 수행 할 수 있습니다.
>> 그러나 한 가지 그 도움이 될 일이
능력은 반대하는 것입니다으로 이러한 기능을 반환에
함수, 함수를 전달하는 다른 함수에 매개 변수로.
당신은 지구에 왜 잘 생각 될 수 있습니다 나는 그런 일을할까요?
>> 글쎄, 내가 원하는 것을 가정 해 봅시다 이 연산자를 취할 것을 나는
일을 열심히 만들고 적용 다른 번호의 무리에 그
배열.
그래서이 경우에 나는의 배열을 가지고 1, 4, 7, 2, 5, 10, 56 integers--.
그리고 나는 그들 모두를 두 배로 할 수 있습니다.
방법이 우리가 일반적으로 것 그냥 쓰기하는 것입니다
루프에 대한 간단한 그 그들 모두를 통해 반복
그리고 어떤 종류의 수행 그들 평방 작업,
새에 그 새 값을 입력 변수, 또는 오히려, 여기에 새로운 배열.
그리고 출력값 결과는 다음 해당 배열의 모든입니다
또는 오히려 그 모든 요소는 지금 제곱.
>> 그리고 우리는 동일한 작업을 수행 할 수 그것을 큐빙에 대한 것,
하지만 약간의 알람 벨 해야을 갈
어쩌면이 있다는 말 어떤 방법으로 우리는 것
이에게 조금 간단하게 할 수있는.
그리고 사실이있다.
우리가 만들 수 있다면 우리가 할 수있는 기능
육식 동물, 함수로, 동의 하는가?
이 경우에 그래서,을 이러한 인수 봐.
우리는 두 배의 목록을 받아들이는 것입니다.
그리고 우리는거야 기능을 적용합니다
그 f를라는 변수에가는 두 번을하고 두 번을 반환합니다.
전체 출력 이 전체 기능의
라는 매퍼에 가고 더블라는 배열을 반환합니다.
>> 이 다음에 저를 허용 무엇 수행은 그 목록을 반복하는 것입니다
지금 같은 일을하지만, 각에 그 기능을 적용
그 목록의 개별 값.
그래서 내가 정말 무엇 F 모른다.
그것은 나에게 중요하지 않습니다.
하지만 두 번에 걸리는 너무 오래로, 그것에 몇 가지 작업을 수행
다음 반환 두 번, 나는 그 것
를 통해 그 기능을 매핑 할 수 목록에있는 모든 단일 요소입니다.
>> 프로그래밍이 유형 인 호출 고차 함수
여기서 우리는 기능을 전달하고 주위에 매개 변수로
과 기능으로 일을.
그것은 이들 모두를 복용처럼 일종의 우리가 CS50에서 배운 아이디어
및 종류를 복용 의 다음 단계로.
그리고이 모든 CS51 스타일의 물건입니다.
그래서 우리는 깊이에 갈거야 같은 클래스에서 더.
>> 하지만이 또한 여기에 중요한 우리 때문에
기능을 많이 볼 스위프트에 사​​용되는
그 본질적 않습니다 이 어디 우리가
몇 가지 숫자, 숫자의 일부 배열입니다.
우리는 통과거야 우리의 매퍼에 배열입니다.
그리고 우리는 또한에가는거야 일부 기능을 건네
우리는 이미 여기에 정의했다.
그것은 광장이 될 것.
그리고 우리는 다음에가는거야 그 숫자를 모두 광장
여기에이 결과로 그 저장합니다.
>> 따라서이 경우는 우리가 정의한 우리 자신의 기능은 매퍼했다.
그러나 정확한 것은,이다 사실, 스위프트에 내장.
다양한이 있습니다 기능을지도했다.
지도 기능이있다, 이 기능을 줄일 수있다,
및 필터 기능이있어, 본질적 기능을 적용하는
모든 하나의 요소에 어떤 방법으로 그들을 수정 나열합니다.
>> 청중 : 당신이 변화하고 있기 때문에 그래서 다른 형식으로 데이터
function-- 통해
DAN ARMENDARIZ : 오른쪽.
네, 그래서 기능 우리는 수용하고 있다는
어떤 방식으로 데이터를 변환한다.
이 경우, 우리는 하나였다 그것을 제곱, 또는 우리가 그것을 큐빙했다,
또는 정말, 우리가 수행 할 수 전혀 아무런 동작을하지 않습니다.
>> 하지만 내가 다음 방법이 당신을 보여 드리죠 실제로 보는 것입니다.
그리고 다시, 나는 중이에요 시간의 비트. 그래서 나는 아니에요
온통 갈 수있을 것 여기에 상세하게 소스 코드.
하지만 그렇게하는 것이 좋습니다.
우리는 가능한 한 빨리 그것을 게시합니다 가능한이 이야기 후.
>> 그러나 당신이 보는 경우에, 우리는 번호 목록이 있다고 가정,
이 숫자의 배열 변수라는 숫자.
그리고 우리는이를 수행 할 그 숫자에 필터 작업.
따라서 필터는 높다 주문 기능이
또한 배열 및 함수를 사용할 수 있습니다.
그리고 그 모든 요소에 어레이는, 그 기능을 수행한다.
>> 그 함수가 반환하는 경우 사실, 그 항목을 유지합니다.
그 함수가 false를 돌려주는 경우, 그것은 그 항목을 버린다.
그리고 그것은 목록을 반환 그 모든 구성되어 있습니다
필터링 된 해당 항목의.
>> 그래서 다른 말로이다 같은 생각, 성적표.
우리는 등급의 다양한있을 수 있습니다 이 값라는 숫자에.
100, 70 등을 할 수 40, 등등 등등.
어떤이 필터가하는 예고하다 이는 구문 설탕입니다
익명 함수.
이 말을 익명 함수입니다 그 내가 받아들이있어 매개 변수
그 경우가 될 것입니다 70보다 큰
다음이 의미, true를 돌려줍니다 해당 항목이 필터에 보관됩니다.
그럼 좀하자 이에 대한보다 구체적인.
난 숫자의 배열이있는 경우 그리고, 100, 70, 40로 구성
나는이 필터를 수행 그 각각에 작업.
그래서 처음 100의 값이다.
100보다 크거나 같음 70 사실이다
(100)에서 유지된다는 것을 의미 이 배열의 새로운 사본.
(70)도 전달합니다.
그러나 (40)는하지 않습니다.
그래서 passingCount 무엇을 반환 요소 (100)과의 배열입니다 70--
(100), 쉼표 (70).
이들은 단 두 있었다 보관 된 항목.
그리고 그 이유는 나는 빨리 겪은 상위의 이러한 종류의 많은
이 것이 일반적이기 때문에 일이 있습니다 당신은 스위프트 꽤 볼 것이다 것
자주, 어떤 작업을 수행 이 익명 함수 구문을 사용하여.
>> 멋진 물건이있다.
스위치, 스위프트 정말 강력하다 난 그냥 미친, 미친 강력한 같은 의미한다.
당신은 스위치를 사용 할 수 있습니다 당신은 실제로 적용 할 수 있습니다
종류의 미친 범위에, 그와 같은 멋진 물건을 할.
>> 그러나 지난 몇 분, 꽤 멀리 건너 뛰고 싶어
당신에게 방법의 구체적인 예를 도시 우리는 스위프트를 사용하여 iOS 앱에서 생성 할 수 있습니다.
그래서 때 당신이하고있는 이, 당신은 걸릴해야합니다
애플에 at-- 봐 문서, 그들은
정말 좋은 튜토리얼을 많이 가지고 첫 번째 응용 프로그램을 만들기위한.
그리고 이렇게하는 것이 좋습니다 그들이 당신을하기 때문에
무엇의 모든 단계를 정확하게에 이르기까지 아이폰 OS 응용 프로그램을 만들 클릭합니다.
>> 그러나 여기에서 우리는이 iOS 앱이 있습니다.
그리고 그것은 매우 간단한 응용 프로그램은 정말.
나는 이것을 실행하면, 내가 보여주지 당신이 어떻게 생겼는지.
본질적 이라곤 그 것이다 인터넷 JSON 파일에서 가져옵니다
것을 나는 서버에 저장하고있다.
그리고 그 JSON 파일 수 있도록 이미지를 정의
날을 통해 다음주기에 내 응용 프로그램, 내 웹 서버에서 이미지.
>> 그래서 나는 여기 getNextImage 있습니다.
또한, 인터넷에서 이미지를로드 다음 화면에 표시합니다.
>> 그래서 아주 간단합니다.
그러나 여기에서의 목표는 보여주는 것입니다 당신은 우리가 사물을 결합 할 수있는 방법
CS50의 후반 몇 주에서 실제 아이폰 OS 응용 프로그램으로.
즉, 아마도 하나 당신이 원하는 것 일
아이폰 OS 응용 프로그램이하는 것입니다 인터넷에서 데이터를 뽑을 수
사용자에게 몇 가지 정보를 표시합니다.
즉, 전체 지점입니다 여기에이 소스 코드.
>> 그래서에 대해 말할 수있는 많은있다 어떻게 실제 아이폰 OS 개발을 할 수 있습니다.
미친 구문 많이있다 우리는 아주 아직 보지 못한 것을
클래스처럼, 클래스는 실제로 것입니다.
우리는 거의 무시할 수 있습니다 당분간 것을.
>> 그러나 우리가 포함 된 것을 알 수 이 물건의 다양한 내
우리는 이미 같은 보았으므로 특정 이름을 가진 기능.
그리고 우리는 사람들을 줄 때 올바른 이름을 기능
즉, 실제로, 아이폰 OS에 의해 기대 이것은 약간의 마법을 느낀다.
하지만 당신은을 만들 때 아이폰 OS 응용 프로그램이
특정 기능의 이름은 그 전화 자체에 의해 호출된다
응용 프로그램이 시도로드로 실제로 프로세스를 만들 수 있습니다
응용 프로그램을 실행합니다.
그래서 다시, 많은 것들을 거기에 그 나는 우리를 위해 여기에 광택해야
이것에 대해 구체적으로 이야기합니다.
하지만 아마도 살펴 보시기 바랍니다 다른 아이폰 OS 세미나뿐만 아니라, 일부
수행 자습서 온라인의 기술의 더 나은 작업
특정 정보를 제공합니다.
>> 그러나 우리는 몇 가지를 볼 수 있습니다 여기에 코드에서 흥미 롭다.
우리가 문 경우가 있음을 알 수 있습니다.
그런데, 한 가지 중요한 if 문에 관한 일
라는 주위의 괄호 부울 표현식은 선택 사항입니다.
그러나 중괄호는 선택하지 않습니다 아무리 적거나 많은 코드
당신은 if 문에 있습니다.
당신은 if 문을 사용할 수 없습니다 스위프트의 중괄호없이.
>> 그리고 이것은, 잘, 종류의 바보입니다.
그러나 과거 이유가있다.
그것은 자신에서 당신을 저장하기로했다.
예를 들어 다음과 같이, 당신은 할 수 없습니다 그 주위에 중괄호를 제거
if 문.
사람들은 실제로 필요합니다.
그래서 내가하는 것이 좋습니다 이것 좀보세요.
하지만 하나 더있다 내가 원하는 것을 구성
스위프트에 대해 보여 그 비교 스위프트 2.0 새로운
스위프트의 이전 버전에, 이는 다음과 같다.
내가 여기에 넣어 않았다 어디 보자?
>> 이 함수 호출 fetchJSON,이 기능
그 JSON을 당겨에 대한 책임 너무 일이 URL에서 파일
내 CS50의 IDE에서 실행합니다.
난 그냥, 아파치를 시작 거기에 내 JSON 파일을 넣어,
나는 그 당길 수있어 사용하여 인터넷 데이터
이 기능이 URL, 이는 전화에 의해 제공됩니다.
그것은 의해 제공된 것 라이브러리 당신은 할 때 사용하는
당신은 어떤 iOS 앱 개발을 수행하고 있습니다.
>> 이 특이한 있다는 것을 여기에 주목 구문 구조는 가드를 불렀다.
정말 모든이에 스위프트 확인하는 방법입니다
몇 가지 가지고 전에 충족
함수의 나머지를 진행합니다.
그래서 사용 할 수 이 옵션 유형,
나는 URL로를 발견 할 수 이 NSURL 함수를 실행
및 URL에 그 저장 일정 한 다음 확인
URL이 전무 인 경우, 볼에 있기 때문에 옵션 형식을 반환하려고 했어요.
이 전무 있다면, 그때 나는 것 오류를 출력 한 후 반환한다.
>> 하지만 그 대신, 무엇 가드 수 있습니다 우리는 바로 그 일을 수행
그러나이 있는지 확인 실제로 경우 해당 URL
제대로 NSURL에 의해 설정되어 있습니다.
그리고 그 후,이면 이 스킵하고,
당신은 계속 할 수 URL이 제대로 정의 된.
그러나 경우이면 그 URL이 제대로 정의되지 않은,
이 함수는 오류를 반환하는 경우 또는 다른 예상치 못한 일
실제로,이 가드 구조를 발생 다음 출력이 오류로 우리를 수
즉시 반환한다.
네?
>> 청중 : 그래서 그것은 종류의 의 다음 다른 경우 같은?
DAN ARMENDARIZ : 그것은 종류의 , 예, 다음, 다른 경우와 같은
이 URL이 다음 것을 제외 이 아래 모든 것을 정의.
그러므로 그것을이 가드를 통과하면 실제로 데이터로 채워집니다
나머지에 사용될 함수에 소스 코드.
그래서 나는 당신이 거라고 생각 뿐만 아니라이 경비를보고 시작합니다.
그리고 염두.
>> 그러니 다른 몇보고 일, 여기에이 권리가 무엇이며,
당신이 생각, 그냥 무엇을 기반으로 우리는 이전에 대해 얘기했다?
>> 청중 :이 목록에서 실행합니다 생각 하는가?
>> DAN ARMENDARIZ : 그래서 그 가까이.
이것은 우리가 정의하는 기능입니다.
그리고 우리는 그 기능을 입력된다 여기에이 함수에 인수로.
>> 청중 : 무기 호 [들림]하지 않을 경우.
그래서 오른쪽 목록에서입니까?
>> DAN ARMENDARIZ : 오류가 nil이 아닌 경우, 그래서 내가 스크롤해야하므로 is--.
글쎄, 난 정말, 이제 볼 수 있도록 여기에서 오른쪽으로 스크롤합니다.
오류가되고있는 인수입니다 이 익명 함수에 전달.
이 익명의 기능입니다.
이 이름이없는.
그러나 우리는이 세 가지를 받고 있습니다 인수, 데이터, 응답 및 오류.
그리고 그렇게, 무효 반환하는 것입니다 그것은 아무것도 반환하지 않을거야.
그리고이 내용입니다 그 기능.
그리고 우리는 그 내부에 액세스 할 수 있습니다 이러한 주장의 각 기능.
>> 그래서 회오리 바람이다 언어의 투어.
그러나 나는이와 희망, 희망이 걸릴
자습서의 일부를 살펴 스위프트와 아이폰 OS 개발에 특정,
당신은로 이동 특히 애플의 개발자 웹 page--
그들은 정말 좋은을 많이 가지고 자습서 당신은 시작한다.
그러나 이야기의 희망 그냥이 시간 구문에 대한 자체 주신
당신은 충분히 그와 함께 시작합니다.
>> 우리는이 소스를 모두 게시 할 예정입니다 세미나 웹 사이트에 코드
가능한 한 빨리, 또한 슬라이드로서 그래서 당신은 모든 사람을위한 기준이있다.
당신의 프로젝트를하지만 행운.
그리고 주셔서 대단히 감사합니다.
>> [박수 갈채]